为每个请求重复使用单个 HTTPClient 实例是一种不好的做法吗?我request
从 yahoo 获取数据webservice
,现在在另一个页面中我webservice
打电话给 google。
我可以在这两个不同的页面中使用相同的 HTTPClient 实例,还是应该为两者创建新的 HTTPClient 对象?
为每个请求重复使用单个 HTTPClient 实例是一种不好的做法吗?我request
从 yahoo 获取数据webservice
,现在在另一个页面中我webservice
打电话给 google。
我可以在这两个不同的页面中使用相同的 HTTPClient 实例,还是应该为两者创建新的 HTTPClient 对象?
您绝对应该重用它们并将其HttpClient
视为单例。在整个应用程序中重用单个实例可以利用保持活动连接并在调用之间保留 cookie。
引用 3.x 的官方文档:
通常建议每个通信组件甚至每个应用程序都有一个 HttpClient 实例。但是,如果应用程序很少使用 HttpClient,并且不保证在内存中保留一个空闲的 HttpClient 实例,那么强烈建议在释放 HttpClient 实例之前显式关闭多线程连接管理器。这将确保正确关闭连接池中的所有 HTTP 连接。
这同样适用于 4.x,只要确保使用PoolingClientConnectionManager
.