gpt4 book ai didi

java - 使用 HttpResponse 对象时获取套接字已关闭错误

转载 作者:可可西里 更新时间:2023-11-01 16:22:50 24 4
gpt4 key购买 nike

我有一个 httpClient 函数,它向调用函数返回一个 HttpResponse 对象。

public HttpResponse postRequest(String uri, String body) throws IOException {
HttpResponse response;
String url = baseUrl + uri;
try (CloseableHttpClient httpClient = HttpClientBuilder.create()
.build()) {
HttpPost post = new HttpPost(url);
post.setEntity(new StringEntity(body));
post.setHeader(AUTHORIZATION_HEADER, authorization);
post.setHeader(CONTENTTYPE_HEADER, APPLICATION_JSON);
post.setHeader(ACCEPT_HEADER, APPLICATION_JSON);

response = httpClient.execute(post);
} catch (IOException e) {
System.out.println("Caught an exception" + e.getMessage().toString());
logger.error("Caught an exception" + e.getMessage().toString());
throw e;
}
return response;
}

在我调用的函数中,HttpResponse response = httpRequest.postRequest(url,body);(其中 httpRequest 是包含该函数的类的对象

当我尝试通过

解析接收到的响应内容时
String responseString = IOUtils.toString(response.getEntity()
.getContent(), "UTF-8");

我得到一个错误套接字已关闭。

连接关闭后如何使用 HttpResponse 的内容?

最佳答案

您的 try-with-resources 语句正在关闭整个客户端。你不想要那个。去掉它。您希望在调用者关闭您返回的响应时关闭。

关于java - 使用 HttpResponse 对象时获取套接字已关闭错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40500445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com