public HttpUtils() {
this(HttpUtils.DEFAULT_CONN_TIMEOUT);
}
public HttpUtils(int connTimeout) {
HttpParams params = new BasicHttpParams();
ConnManagerParams.setTimeout(params, connTimeout);
HttpConnectionParams.setSoTimeout(params, connTimeout);
HttpConnectionParams.setConnectionTimeout(params, connTimeout);
ConnManagerParams.setMaxConnectionsPerRoute(params, new ConnPerRouteBean(10));
ConnManagerParams.setMaxTotalConnections(params, 10);
HttpConnectionParams.setTcpNoDey(params, true);
HttpConnectionParams.setSocketBufferSize(params, 1024 * 8);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("", PinSocketFactory.getSocketFactory(), 80));
schemeRegistry.register(new Scheme("s", DefaultSSLSocketFactory.getSocketFactory(), 443));
Client = new DefaultHttpClient(new ThreadSafeClientConnManager(params, schemeRegistry), params);
Client.setHttpRequestRetryHandler(new RetryHandler(DEFAULT_RETRY_TIMES));
Client.addRequestInterceptor(new HttpRequestInterceptor() {
@Override
public void process(org.apache..HttpRequest Request, HttpContext Context) throws org.apache..HttpException, IOException {
if (!Request.containsHeader(HEADER_ACCEPT_ENCODING)) {
Request.addHeader(HEADER_ACCEPT_ENCODING, ENCODING_GZIP);
}
}
});
Client.addResponseInterceptor(new HttpResponseInterceptor() {
@Override
public void process(HttpResponse response, HttpContext Context) throws org.apache..HttpException, IOException {
final HttpEntity entity = response.getEntity();
if (entity == null) {
return;
}
final Header encoding = entity.getContentEncoding();
if (encoding != null) {
for (HeaderElement element : encoding.getElements()) {
if (element.getName().equalsIgnoreCase("gzip")) {
response.setEntity(new GZipDecompressingEntity(response.getEntity()));
return;
}
}
}
}
});
}@@
Copyright 2021宝石小说All Rights Reserved