如何设置RequestBody用于HTTP DELETE方法。(How to set Request

2019-09-16 11:38发布

我写这删除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);
    }

提前致谢。

Answer 1:

我没有尝试这样做,这是如同地狱中的hackish我wolud感到更快乐,如果事实证明有更好的解决办法,但你可以尝试延长PostMetod并重写getName()方法返回“删除”。



Answer 2:

为什么不这样做:-)

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


文章来源: How to set RequestBody for Http Delete method.