Httpclient 中常用的请求有2个,HttpPost 和 HttpGet,今天在对某个网站进行分析的时候,突然发现用到了 HttpDelete,并且传参 是 Json。

1、一般 HttpPost 对传参 Json 的处理是:

// 中文处理

StringEntity se = new StringEntity(json, Consts.UTF_8);

httppost.setEntity(se);

2、使用 HttpDelete,貌似不能传参,突发奇想,将 HttpDelete 换成 HttpPost,再传参,此路不通。

3、百度没有找到很好的解决方法。只好 Google, HttpDelete Json,在 stackoverflow 上看了几篇文章,立马找到解决办法了 

详见 http://stackoverflow.com/questions/3773338/httpdelete-with-body

4、解决办法:

import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import java.net.URI;
import org.apache.http.annotation.NotThreadSafe; @NotThreadSafe
class HttpDeleteWithBody extends HttpEntityEnclosingRequestBase {
public static final String METHOD_NAME = "DELETE";
public String getMethod() { return METHOD_NAME; } public HttpDeleteWithBody(final String uri) {
super();
setURI(URI.create(uri));
}
public HttpDeleteWithBody(final URI uri) {
super();
setURI(uri);
}
public HttpDeleteWithBody() { super(); }
}

然后就简单了

httpdelete.setHeader("Cookie", cookie);
// json 处理
httpdelete.setHeader("Content-Type", "application/json; charset=UTF-8");
httpdelete.setHeader("X-Requested-With", "XMLHttpRequest"); httpdelete.setEntity(new StringEntity(json));
httpdelete.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 20000);
HttpResponse response = client.execute(httpdelete);

最近 Google 大神很不方便,推荐一款浏览器,Buckyball,大伙自个百度。

最新文章

  1. iOS 关于PCH文件(全局文件)的介绍
  2. 【干货】微信场景之H5页面制作免费工具大集合
  3. 兼容性测试-如何使用IE11做低版本IE的兼容性测试
  4. HoloLens模拟器仿真器与文档现已向开发者们开放
  5. C 文件读写 容易疏忽的一个问题
  6. 如何更改Json.NET的序列化规则
  7. Android 内核基本知识
  8. 实例解析shell子进程(subshell )
  9. 关于 实时推送技术--WebSocket的 知识分享
  10. Oracle EBS-SQL (SYS-6):sys_在线用户职责查询.sql
  11. Spring使用 --- 基本概念(一):DI,依赖注入
  12. Linux磁盘和文件系统简介
  13. win10 内置软件经常不用,还占空间?如何轻松卸载
  14. windos或linux中 which命令 查看当前要执行的命令所在的路径
  15. TCP/IP网络知识点总结
  16. centsos7修改主机名 [root@st152 ~]# cat /etc/hostname
  17. 008——php字符串中的处理函数(七)
  18. thinkphp+redis实现秒杀,缓存等功能
  19. LightOJ 1414 February 29(闰年统计+容斥原理)
  20. zabbix install

热门文章

  1. C语言中 fputs() fgets() 的使用方法
  2. 03、IDEA下Spark API编程
  3. ODBC驱动程序丢失解决方法
  4. CRUD全栈式编程架构之控制器的设计
  5. sublime打开txt文件乱码的问题
  6. 【转载】#344 - Hidden Base Class Member Is Invoked Based on Declared Type of Object
  7. mysql轮廓总结
  8. CORS跨域限制以及预请求验证
  9. Nginx + uWSGI + web.py 搭建示例
  10. 3、SpringBoot+MybatisPlus整合-------代码生成器