Httpclient httpdelete 参数

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,大伙自个百度。

Httpclient httpdelete 参数,布布扣,bubuko.com

时间: 2024-10-12 21:16:55

Httpclient httpdelete 参数的相关文章

[HttpClient]传递参数

package com.jerry.httpclient; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedForm

HttpClient的简单运用

最近在工作中需要在后台调用短信接口,经过研究决定使用HttpClient,自己封装了一个HttpClient工具类,简单轻松的实现get,post,put和delete请求,希望分享给大家. 1. 什么是HttpClient HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提

Java模拟POST表单提交HttpClient操作

public static void Login() { String url = "http://www.***.com/login"; PostMethod postMethod = new PostMethod(url); // 填入各个表单域的值 NameValuePair[] data = { new NameValuePair("account", "[email protected]"), new NameValuePair(&qu

【转】 Pro Android学习笔记(七一):HTTP服务(5):多线程调用HttpClient

目录(?)[-] 应用共享HttpClient对象的同步问题 创建共享HttpClient代码 创建共享对象 创建可共享的HttpClient对象 使用共享HttpClient对象的代码 基础代码 修改HTTP连接的参数 使用共同的Appcliation对象 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 应用共享HttpClient对象的同步问题 在之前的例子中,HttpClient只

使用httpclient 调用selenium webdriver

转自:http://www.cnblogs.com/tobecrazy/p/5034408.html 结合上次研究的selenium webdriver potocol ,自己写http request调用remote driver代替selenium API selenium web driver Json protocol 相关请看 http://www.cnblogs.com/tobecrazy/p/5020741.html 我这里使用的是Gson 和 httpclient 首先,起一个r

.NET httpClient Post请求,GET请求方法

1.后端是WebAPI,POST请求,修饰符是[FromBody]的字符串,[FromBody]修饰的时候数据是来自body部分,而不是来自url部分,所以后端取值会自动映射出数据,比如后端是这样的, public void Get([FromBody] string a ){ } 这种情况是后端的是字符串,这种情况前端httpClient请求参数比较特殊 client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeader

客户端产生CLOSE_WAIT状态的解决方案

现象 生产环境和测试环境都发现有个外围应用通过搜索服务调用搜索引擎时,偶尔会出现大量的访问超时的问题,通过如下方式进行分析排查: l 首先是拿到搜索服务的JavaCore,发现其堵在HttpClient的发送上面,被堵的连接有数百个,原因是不能够从连接池中获取到连接: l 首先想到的就是连接池没有释放,检查代码,也确实存在着一些调用没有释放连接,特别是在异常的情况下,针对这一部分代码进行修复后,可是一段时间之后还是出现了访问超时的问题: l 考虑到这个外围应用的访问现出问题的时候,其它的外围应用

用cas来实现php的单点登陆

最近项目中需要做单点登录,客户端包含Java.ruby和PHP,java有几个应用程序,php是discuz+supesite+ucenter,配置步骤如下: 1.cas服务端:下载地址:http://downloads.jasig.org/cas/,cas的服务端和客户端有许多版本,最新版本和老版本有很大的区别,解压cas-server-3.4.4-release.zip将modules目录下的cas-server-webapp-3.4.4.war改名称为cas.war复制到tomcat的we

【SSO单点系列】(1):CAS4.0 之环境的搭建

[SSO单点系列](1):CAS4.0 环境的搭建 一.概述 今天开始写CAS相关的第一篇文章,这篇文章主要是关于CAS环境的搭配,提供给刚刚接触CAS的一个入门指南,并演示一个CAS的最简单的实例 二.环境要求 博主的环境如下: win8.1 64 bit JDK1.7  下载地址点我 Tomcat-8.0.15  下载地址点我 cas-server-4.0.0 .cas-client-3.3.3  下载地址点我  (官网速度比较慢,提供百度网盘) tomcat服务器需要部署三个,我分别命名为