我有一個問題試圖讓Android應用程序(以及服務,它有什麼區別)使用持久的HTTP 1.1連接。Android上的持久HttpURLConnections
以下循環(簡化測試用例)通過桌面JRE上的單個TCP會話工作,但在Android設備上會導致整個套接字創建/拆卸週期。
while (true) {
URL url;
try {
url = new URL("http://10.0.0.125:8080/SRV?");
URLConnection connection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
}
甲骨文的JDK介紹了一種叫做 '系統屬性':
http.keepAlive = 默認:真
http.maxConnections = 默認:5
Android的運行時是否有類似的東西阻止持久連接的維護?
作爲一個快速測試,你也可以試試[URLConnection.setRequestProperty(「Connection」,「keep-alive」)](http://developer.android.com/reference/java/net/URLConnection.html#setRequestProperty% 28java.lang.String,%20java.lang。字符串%29)如果設置需要的頭部有竅門。 – harism 2011-05-06 23:15:33
感謝您指點正確的方向 - 對於java.net內部使用Apache的HttpClient的事實,Google文檔並不特別直截了當。我將使用Apache接口(以及2.11中提供的信息)重寫我的代碼,並會保持更新。 – qdot 2011-05-06 23:15:57
@harism - 它似乎沒有改變任何東西。 – qdot 2011-05-07 00:17:53