码迷,mamicode.com
首页 > 编程语言 > 详细

java中使HttpDelete可以发送body信息

时间:2017-02-07 16:18:01      阅读:2155      评论:0      收藏:0      [点我收藏+]

标签:nal   array   post   request   常用操作   extends   android开发   client   gre   

java中使HttpDelete可以发送body信息
RESTful api中用到了DELETE方法,android开发的同事遇到了问题,使用HttpDelete执行DELETE操作的时候,不能携带body信息,研究了很久之后找到了解决方法。 我们查看httpclient-4.2.3的源码可以发现,methods包下面包含HttpGet, HttpPost, HttpPut, HttpDelete等类来实现http的常用操作。 其中,HttpPost继承自HttpEntityEnclosingRequestBase,HttpEntityEnclosingRequestBase类又实现了HttpEntityEnclosingRequest接口,实现了setEntity的方法。 而HttpDelete继承自HttpRequestBase,没有实现setEntity的方法,因此无法设置HttpEntity对象。 这样解决方法就明显了,我们可以自己实现一个MyHttpDelete类,继承自HttpEntityEnclosingRequestBase,覆盖其中的getMethod方法,使其返回“DELETE”。
public class MyHttpDelete extends HttpEntityEnclosingRequestBase {
public static final String METHOD_NAME = "DELETE";
public String getMethod() {
return METHOD_NAME;
}
public MyHttpDelete(final String uri) {
super();
setURI(URI.create(uri));
}
public MyHttpDelete(final URI uri) {
super();
setURI(uri);
}
public MyHttpDelete() {
super();
}
}
使用delete方法时,直接可以按下面方式操作
DefaultHttpClient httpClient = new DefaultHttpClient();
MyHttpDelete delete = new MyHttpDelete("http://url.com");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
delete.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(delete);

java中使HttpDelete可以发送body信息

标签:nal   array   post   request   常用操作   extends   android开发   client   gre   

原文地址:http://www.cnblogs.com/jing1617/p/6374401.html

(3)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!