我有一个关于HttpClient的查询。 您认为对于多线程应用程序,为每个传入请求实例化一个新的HttpClient对象是一个好主意吗?
HttpClients.custom()
.setConnectionManager(new PoolingHttpClientConnectionManager())
.build();
如果没有,那么在这种情况下,我们将只有一个HttpClient对象。现在,单线程HttpClient对象可以由许多线程共享以执行剩余调用。
成功执行完rest调用后,我们通常使用HttpClients.closequietly()
您不认为关闭单例httpclient对象会在多线程环境中造成问题。
那我们应该如何处理这种情况?
答案 0 :(得分:0)
据我所知,在多个线程中使用HttpClient的单个实例是完全可以的。为了正确处理Rest调用,您需要关闭Rest调用响应,例如,可以使用org.apache.http.util.EntityUtils#consumeQuietly。