2012-12-28 26 views
0

我最近一直在尝试HttpURLConnection,并且对HttpURLConnection的不同实例共享来自公共池的连接感到印象深刻。 (使用数据包捕获进行验证)对HttpURLConnection池的可见性?

我的问题是:是否可以直接访问池?我想查看池中有哪些连接,每个连接的状态。是否有一个接口来设置每个主机的最大连接数?

此外,我的理解是正确的任何线程/ AsyncTask任何HttpURLConnection实例将始终使用单个池?我只有一个任务中的测试...

的Java小白这里有一个很难浏览所有的javadoc ...

+0

这实际上是一个实现细节,而不是公共API的一部分。您可以随意使用反射技术来查找,但是您发现在JVM甚至同一JVM的不同版本之间可能不一致。 –

+0

所以我想我应该远离它... – sajal

回答

0

您可以设置http.maxConnections系统属性(每个Android文档 - 没有你阅读它?)来限制每个主机的连接数量。不过,我不知道如何查询状态信息。

+0

好吧,这解决了“设置每个主机的最大连接数”部分....我最初没有正确地阅读他们的文档,并认为http.maxConnections是在池中的空闲连接总数....但我主要的兴趣是看看这些连接是什么... – sajal

+0

呃......'netstat'?这当然不是公共API的一部分 - 你将不得不陷入沉思,使用反射,剖析器等。实际上可能有一个JMX bean暴露了这些,但我忍受了(我也没有看过)。 –