httpclient4.3.5无证书访问https网站

倾刃凤城 2016-12-28 07:29:04
site是网址,访问http网站都没有问题,访问https网站response内容:HttpResponseProxy{HTTP/1.1 400 Bad Request [Server: Tengine, Date: Wed, 28 Dec 2016 11:16:05 GMT, Content-Type: text/html; charset=GB2312, Transfer-Encoding: chunked, Connection: close, Set-Cookie: thw=cn; Path=/; Domain=.taobao.com; Expires=Thu, 28-Dec-17 11:16:05 GMT;]}
我的代码改如何更改,求大神们解救。。。

protected void initHttpClient(String site) {
try {
Registry<ConnectionSocketFactory> reg = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", connectionSocketFactory)
.register("https", connectionSocketFactory)
.build();
// Cookie
CookieSpecProvider easySpecProvider = new CookieSpecProvider() {
public CookieSpec create(HttpContext context) {
return new BrowserCompatSpec() {
@Override
public void validate(Cookie cookie, CookieOrigin origin)
throws MalformedCookieException {
}
};
}
};
Registry<CookieSpecProvider> cookieReg = RegistryBuilder.<CookieSpecProvider>create()
.register(CookieSpecs.BEST_MATCH,
new BestMatchSpecFactory())
.register(CookieSpecs.BROWSER_COMPATIBILITY,
new BrowserCompatSpecFactory())
.register("easy", easySpecProvider)
.build();
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(10000)
.setConnectTimeout(10000)
.setConnectionRequestTimeout(6000)
.setRedirectsEnabled(true)
.setCookieSpec("easy")
.build();
httpClient = HttpClients.custom()
.setConnectionManager(new PoolingHttpClientConnectionManager(reg))
.setRedirectStrategy(new LaxRedirectStrategy() {
@Override
public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) throws ProtocolException {
return super.isRedirected(request, response, context);
}
})
.setRetryHandler(new DefaultHttpRequestRetryHandler(10, false))//重试次数
.setDefaultCookieSpecRegistry(cookieReg)
.setDefaultRequestConfig(requestConfig)
.disableContentCompression()
.build();
} catch (Exception e) {
throw new IllegalStateException("无法创建HttpClient客户端对象", e);
}
try {
request = new HttpGet(site.matches("^(?i)https?://.*") ? site : "http://" + site);
if(!site.matches("^(?i)https?://.*"))
log.debug("网站采集已自动补全网址协议部分:{} -> {}", site, ("http://" + site));
// 请求头信息
request.setHeader(HttpHeaders.ACCEPT_ENCODING, "gzip,deflate,sdch");
request.setHeader(HttpHeaders.CACHE_CONTROL, "no-cache,max-age=0");
request.setHeader(HttpHeaders.PRAGMA, "no-cache");
request.setHeader(HttpHeaders.USER_AGENT, "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36");
} catch (Exception e) {
throw new IllegalStateException("无法创建HttpRequest对象", e);
}
}
...全文
140 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧