5

APIを削除するサーバーのクライアントコードを書いています。API 仕様では、データを送信する必要があります。クライアント コードを記述するために HttpComponents v3.1 ライブラリを使用しています。HtpDeleteクラスを使用して、リクエスト データを追加する方法が見つかりませんでした。そうする方法はありますか?以下はコードスニペットです。

        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);
    }

前もって感謝します。

4

2 に答える 2

10

なぜこれをしないのですか:-)

class MyHttpDelete extends HttpPost{
    @Override
    public String getMethod() {
        return "DELETE";
    }
}
于 2013-06-06T09:21:01.930 に答える
9

私はこれを試したことがなく、それは地獄のようにハックであり、より良い解決策があればもっと幸せに感じるでしょうが、PostMetod を拡張して getName() メソッドをオーバーライドして "DELETE" を返すようにしてみてください。

于 2012-04-10T23:23:13.500 に答える