Httpclient4.0使用

3.0有时候会有connection timing bug
the situation has not happened under 4.0
this is how to step forward to the 4.0 edition
不过4.0设计的不如3.0爽阿,包结构太复杂,源代码看起来很费劲,折腾了一天,留此
以记
:


this.params = new BasicHttpParams();
ConnManagerParams.setMaxTotalConnections(params, 5);
ConnManagerParams.setTimeout(params, TIME_OUT);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");


ArrayList headers = new ArrayList();
headers.add(new BasicHeader("User-Agent", FIRE_FOX_AGENT_WIN));
headers.add(new BasicHeader("Accept", "*/*"));
headers.add(new BasicHeader("Accept-Encoding", "x-gzip, gzip, deflate"));
headers.add(new BasicHeader("Accept-Language", "zh-cn,zh;q=0.5"));
headers.add(new BasicHeader("Accept-Charset", "gb2312,utf-8,ISO-8859-1;q=0.7,*;q=0.7"));
params.setParameter(ClientPNames.DEFAULT_HEADERS, headers);


HttpClientParams.setCookiePolicy(params, CookiePolicy.BROWSER_COMPATIBILITY);

HttpConnectionParams.setSoTimeout(params, 3000);
HttpConnectionParams.setSocketBufferSize(params, 8*1024);
HttpConnectionParams.setConnectionTimeout(params, 3000);
params.setBooleanParameter(CookieSpecPNames.SINGLE_COOKIE_HEADER, true);
this.schemeRegistry = new SchemeRegistry();
this.schemeRegistry.register(
new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
this.schemeRegistry.register(
new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
this.cm = new ThreadSafeClientConnManager(this.params, this.schemeRegistry);
this.httpClient = new DefaultHttpClient(this.cm, this.params);
HttpGet httpGet = new HttpGet(url);

HttpParams params = httpClient.getParams();
//params.getBooleanParameter(CookieSpecPNames.SINGLE_COOKIE_HEADER, false);
Header referer = new BasicHeader("Referer",url);
HttpResponse hre = httpClient.execute(httpGet,localContext);
//Header[] heads = httpClient.
[color=red]Header[] heads = ((RequestWrapper)localContext.getAttribute(ExecutionContext.HTTP_REQUEST)).getAllHeaders();[/color]
System.out.println("request +++++++++++++++++++++++++++++++++++++");
for(int i=0;i<heads.length;i++){
System.out.println(heads[i].getName()+": "+heads[i].getValue());
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值