有关Java HttpClient的查询

时间:2018-06-23 13:24:54

标签: java apache-httpclient-4.x

我有一个关于HttpClient的查询。 您认为对于多线程应用程序,为每个传入请求实例化一个新的HttpClient对象是一个好主意吗?

HttpClients.custom()                
           .setConnectionManager(new PoolingHttpClientConnectionManager())
           .build();

如果没有,那么在这种情况下,我们将只有一个HttpClient对象。现在,单线程HttpClient对象可以由许多线程共享以执行剩余调用。

成功执行完rest调用后,我们通常使用HttpClients.closequietly()

关闭finally块中的httpclient对象。

您不认为关闭单例httpclient对象会在多线程环境中造成问题。

那我们应该如何处理这种情况?

1 个答案:

答案 0 :(得分:0)

据我所知,在多个线程中使用HttpClient的单个实例是完全可以的。为了正确处理Rest调用,您需要关闭Rest调用响应,例如,可以使用org.apache.http.util.EntityUtils#consumeQuietly。