问题描述
我正在使用PoolingHttpClientConnectionManager,但是第一次调用url时,我的响应速度为1000ms,但是下一次调用时间减少为200ms,300ms,500ms?
init:
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
// Increase max total connection
connManager.setMaxTotal(maxTotalConnections);
// Increase default max connection per route
connManager.setDefaultMaxPerRoute(maxConnectionsPerRoute);
// config timeout
RequestConfig config = RequestConfig.custom().setConnectTimeout(connectTimeout)
.setConnectionRequestTimeout(waitTimeout).setSocketTimeout(readTimeout).build();
String proxyH = System.getProperty("https.proxyHost");
int proxyP = Integer.parseInt(System.getProperty("https.proxyPort"));
CloseableHttpClient httpClient = HttpClients.custom().setKeepAliveStrategy(keepAliveStrategy).setConnectionManager(connManager)
.setDefaultRequestConfig(config).setProxy(new HttpHost(proxyH,proxyP)).build();
发送doPost:
try {
StringEntity requestEntity = new StringEntity(this.reqData,DEFAULT_CHARSET);
postMethod = new HttpPost(url);
postMethod.setEntity(requestEntity);
response = execute(postMethod);
int statusCode = response.getStatusLine().getStatusCode();
SimpleHttpResponse simpleResponse = new SimpleHttpResponse();
simpleResponse.setStatusCode(statusCode);
HttpEntity entity = response.getEntity();
if (entity != null) {
String ctype = "application/json; charset=UTF-8";
String charset = getResponseCharset(ctype);
String content = EntityUtils.toString(entity,charset);
simpleResponse.setContent(content);
}
EntityUtils.consume(entity);
String respData = simpleResponse.getContent();
} catch (Exception e) {
e.printStackTrace();
} finally {
postMethod.releaseConnection();
if (response != null) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
感谢查看。请帮帮我!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)