2.HttpClientapache
2.1简介:cookie
最近看项目的代码,看到工程中有两个jar包张的很像,一个是commons.httpclient-3.1.jar,一个是httpclient4.2.1.jar,很纳闷,并且这两个包里都有HttpClient这个类,可是包名却不同,而后就查找了一番资料,看下这两个包究竟是个什么关系。app
commons.httpclient-3.1.jar这个jar包是依赖了httpcore,commons-logging,commons-codec这三个jar包。而在commons-httpclient.jar包在使用过程当中,须要依赖commons-logging.jar和commons-codec.jar,这个httpclient4.2.1.jar就至关于集合了之前的commons-httpclient,commons-logging,commons-codec,这三个jar包,减小了繁琐的导入jar包的过程,如今只需导入一个httpclient.jar就能够使用了。code
除此之外,在apache的官网上下载httpclient的jar包时,会发现它是在一个叫HttpComponent的项目下,这个HttpComponent是apache的顶级项目。而之前的commons的那三个包都是commons的项目下。在HttpComponent的网页上,看到了这样的文字: HttpComponents Client is a successor of and replacement for Commons HttpClient 3.x. Users of Commons HttpClient are strongly encouraged to upgrade.get
也就是说commons下的commons-httpclient不在更新和维护了,用commons-httpclient的用户也建议更新到httpclient这个包。it
HttpClient httpClient = new HttpClient();
httpClient.getHostConfiguration().setProxy("10.91.237.89", 3128);
GetMethod getMethod = new GetMethod(saleUserInfoURL + saleToken);
getMethod.getParams().setParameter("http.protocol.cookie-policy", CookiePolicy.BROWSER_COMPATIBILITY);
getMethod .addRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36");
int httpStatus = httpClient.executeMethod(getMethod);
if (HttpStatus.SC_OK == httpStatus) {
byte[] result = getMethod.getResponseBody();
buffer.append(new String(result));
if (StringUtils.isNotEmpty(buffer.toString())) {
Map<String, Object> result2 = JSONObject.parseObject(buffer.toString(), Map.class);
return result2;
}
}io
2.2 GET方式调用class
2.3 POST方式调用cli