当我使用CloseableHttpClient并执行excute方法时,它在第一次正常工作但从未成功过。 它将抛出异常,表示"连接池关闭"
有人说这是因为我没有关闭客户 有人说这是httpclient 4.3中的一个错误我的项目不存在上述问题,但它仍然无法正常工作
CloseableHttpClient httpClient = HttpClientManagerUtils.getHttpClient();
try {
HttpResponse response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) {
log.info("调用网易接口成功,url:{},param:{}", url, JSONObject.toJSON(param));
HttpEntity entity = response.getEntity();
if (entity.getContentType().toString().contains("application/json")) {
String responseString = EntityUtils.toString(entity, "utf-8");
return JSON.toJavaObject(JSON.parseObject(responseString), NimResult.class);
}
} else {
throw new RuntimeException("http code : " + response.getStatusLine().getStatusCode() + ", exception:" +
EntityUtils.toString(response.getEntity()));
}
} catch (Exception e) {
log.error("调用网易接口异常,url:{},param:{}", url, JSONObject.toJSON(param), e);
} finally {
httpClient.close();
}
答案 0 :(得分:0)
我不应该关闭客户端,而应该关闭响应。自httpclient 4.4以来,客户端将自动关闭 我已经解决了:)