CloseableHttpClient连接池关闭

时间:2017-09-07 05:44:38

标签: java httpclient

当我使用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();
    }

1 个答案:

答案 0 :(得分:0)

我不应该关闭客户端,而应该关闭响应。自httpclient 4.4以来,客户端将自动关闭 我已经解决了:)