2012-04-10 9 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"; 
    } 
} 
関連する問題