2012-04-10 3 views
4

API를 삭제하는 서버의 클라이언트 코드를 작성하고 있습니다. API 사양에는 데이터를 보내야합니다. 클라이언트 코드 작성을 위해 HttpComponents v3.1 라이브러리를 사용하고 있습니다. HtpDelete 클래스를 사용하여 요청 데이터를 추가하는 방법을 찾지 못했습니다. 그렇게 할 방법이 있습니까? 아래는 코드 스 니펫입니다.Http Delete 메소드의 RequestBody 설정 방법.

 HttpDelete deleteReq = new HttpDelete(uriBuilder.toString()); 
    List<NameValuePair> postParams = new ArrayList<NameValuePair>(); 
    postParams.add(new BasicNameValuePair(RestConstants.POST_DATA_PARAM_NAME, 
      postData.toString())); 
    try { 
     UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postParams); 
     entity.setContentEncoding(HTTP.UTF_8); 
     //deleteReq.setEntity(entity); // There is no method setEntity() 
     deleteReq.setHeader(RestConstants.CONTENT_TYPE_HEADER, RestConstants.CONTENT_TYPE_HEADER_VAL); 
    } catch (UnsupportedEncodingException e) { 
     logger.error("UnsupportedEncodingException: " + e); 
    } 

미리 감사드립니다.

+0

하지 : 그게 무슨 API입니까? (DELETE 요청 본문 필요) –

+0

자사의 맞춤 타사 REST API. :) –

답변

7

나는 이것을 해본 적이 없으며 더 나은 해법 인 것처럼 느껴진다. 더 나은 해결책이 나온다면 더 행복해 질 것이다. 그러나 PostMetod를 확장하고 getName() 메소드를 재정 의하여 "DELETE" .

9

이유는 호기심이 :-)

class MyHttpDelete extends HttpPost{ 
    @Override 
    public String getMethod() { 
     return "DELETE"; 
    } 
}