HttpClient是一个模拟HTTP请求的工具类.
对HttpClient进行了一个简单的封装:
import static org.apache.commons.httpclient.params.HttpMethodParams.SO_TIMEOUT;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
/**
* HTTP 工具类.
*
* @author tengfei.fangtf
*
*/
public class HttpUtil {
/**
* 默认编码为 GB2312
*/
private static final String HTTP_CONTENT_CHARSET = "gb2312";
private static TalaLogger log = TalaLogger.getLogger();
public static final Integer MAX_TIME_OUT = 5000;
public static final Integer MAX_IDLE_TIME_OUT = 60000;
public static final Integer MAX_CONN = 100;
public static HttpClient httpClient = null;
static {
MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
connectionManager.closeIdleConnections(MAX_IDLE_TIME_OUT);
connectionManager.getParams().setParameter(
"http.connection-manager.max-total", MAX_CONN);
httpClient = new HttpClient(connectionManager);
httpClient.getParams().setParameter(SO_TIMEOUT,
MAX_TIME_OUT);
httpClient.getParams().setParameter("http.connection.timeout",
MAX_TIME_OUT);
httpClient.getParams().setParameter("http.connection-manager.timeout",
MAX_TIME_OUT.longValue());
}
/**
* 发送HTTP请求
*
* @param url
* @param param
* @return HTTP响应
*/
public static String sendSimplePostRequest(String url,
Map<String, Object> param) {
// HTTP方法,还有get,head,put,delete,connect,options(询问可用的选项)
PostMethod post = new PostMethod(url);
post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,
HTTP_CONTENT_CHARSET);
if (param != null) {
for (Entry<String, Object> entry : param.entrySet()) {
// 排除掉空值
if (entry.getValue() != null) {
post.addParameter(entry.getKey(), entry.getValue()
.toString());
}
}
}
try {
post.addRequestHeader(new Header("Connection", "close"));
// post.addRequestHeader("Cookie", "ID=1"); //添加Cookie
httpClient.executeMethod(post);
if (post.getStatusCode() == HttpStatus.SC_OK) {
return post.getResponseBodyAsString();
} else {
post.abort();//马上断开连接
log.error("Http Comunication error ! code --> "
+ post.getStatusCode(), null);
}
} catch (Exception e) {
log
.error("Http post occur error!url=" + url + ",param="
+ param, e);
} finally {
post.releaseConnection();
}
return null;
}
}
依赖jakarta.commons.httpclient-3.1.jar
分享到:
相关推荐
网上收集整理的HttpClient4.3教程已转成PDF格式。
以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。 (1)实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等) (2)支持自动转向 (3)支持 HTTPS 协议 (4)支持代理...
以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。 实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等) 支持自动转向 支持 HTTPS 协议 支持代理服务器等 下面将逐一...
本方法以HttpClient发送请求,并且接收返回数据 举例说明 public static String doGet(String url, Map, String> params, String charset) public static void downLoadImage(String url, String path) public ...
使用本机开启服务,并利用此程序联机到Server,联机完成后,可发送请求,并回收结果,同时将收到的讯息转换为JSON序列
情景描述 将一个时间转换为对应的unix时间戳, ... ...除此之外,我们对请求添加签名的校验,key设置为X-Sign 接口定义 /// /// 获取时间戳(毫秒). .../// <param name=dateTime></param> /// <returns></returns> ...
1. HttpClient简介 官网地址: http://hc.apache.org/ HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的...
httpclient jar包是一款能够支持HTTP协议最新的版本和建议的扩展包,为Java开发人员提供了高效的、最新的、功能丰富的HTTP协议,还能处理各种HTTP相关的问题,支持所有的http方法、自动转向、https协议、代理服务器...
简单的对象转换成json对象,和把对象转换成map的技巧
HttpClient.js 一个HTTP客户端,可简化浏览器中的发送请求(Http和JSONP)。 产品特点 承诺式和回调式API。 发送Http和JSONP请求。 编译URL和查询字符串。 取消请求并设置超时。 标头,缓存控制和CORS。 可...
调用第三方接口和将json转化为list的jar包(包含httpClient,httpCore,Gson),包含实例,会进一步更新
下面小编就为大家带来一篇httpclient 请求http数据,json转map的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Python ComHttp ... Examples: ... httpClient = ComHttp.HttpClient('http://20140507.ip138.com/ic.asp') print httpClient.GetString() ... httpClient = ComHttp.HttpClient('... print httpClient.GetString()
本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法。 以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。 (1)实现了所有 HTTP 的方法...
提供现成的单点登录应用代码(只提供server),已经测试有效,具体可以参考我的方案文档
HTTP-HELPER介绍Http-Helper是对Apache Httpclient和Fluent API的有效补充,它使得使用Fluent API更加简单方便,它可以直接转换返回的响应体到指定的常用类型数据,使用者不需要手工转换,Http-Helper帮助转换了...
3.commons-httpclient-3.0.jar 4.commons-lang-2.4.jar 5.commons-logging-1.0.4.jar 6.ezmorph-1.0.6.jar 7.json-lib-2.3-jdk15.jar 对于没有积分的童鞋,我已经把所需要的jar包已经贴出来了,自己动手,丰衣足食.
HttpToSocks5Proxy 使用.NET HttpClient时,该库允许您通过Socks5代理进行连接。 它实现了IWebProxy接口,因此可以与所有支持HTTP / HTTPS代理的库一起使用。HttpClient的用法 using MihaZupan ;var proxy = new ...
本项目是一个图片处理的综合例子源码,实现了图片的旋转,缩放,加盖水印,透明,倾斜,扭曲用到的图片是使用httpclient 实现在线图片的下载展示,并实现图片处理。如果,网络图片不存在了,请在代码中修改图片路径...