java - 总是,使用 PoolingHttpClientConnectionManager 时第一次调用很慢?
问题描述
我正在使用 PoolingHttpClientConnectionManager 但第一次 url 调用我响应了 1000 毫秒但下一次调用时间减少为 200 毫秒、300 毫秒、500 毫秒?
在里面:
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();
}
}
}
感谢观看。请帮我!
解决方案
推荐阅读
- locking - Infinispan 9.4.16,JBoss EAP 7.3 与复制缓存 2 节点线程的锁争用是 TIMED_WAITING(停车)
- cmd - 需要帮助弄清楚这个 xcopy 命令的作用
- python - 在 Windows 上部署预构建的嵌入式 Python 环境
- reactjs - 端点在heroku上返回与本地不同的值
- python - Tkinter: function doesn't print when option menus are dynamically linked
- flask - 在没有用户身份验证的情况下保护 Flask API
- javascript - 检测素数不能正常工作的 JS 函数
- laravel - 文件资源管理器在 git bash 中的任何命令后随机打开
- javascript - Tab键未在移动设备中注册为keydown
- angular - 如何修复角码两个绑定中的错误