2012-12-28 67 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暴露了這些,但我忍受了(我也沒有看過)。 –