我試圖連接到一個我知道存在的URL,但我不知道何時。 我無權訪問此服務器,因此無法更改任何內容以接收活動。循環內的HttpURLConnection
實際的代碼是這樣的。
URL url = new URL(urlName);
for(int j = 0 ; j< POOLING && disconnected; j++){
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int status = connection.getResponseCode();
if(status == HttpURLConnection.HTTP_OK || status == HttpURLConnection.HTTP_NOT_MODIFIED){
//Some work
}else{
//wait 3s
Thread.sleep(3000);
}
}
Java不是我最好的技能,我不確定從性能的角度來看這個代碼是否好。 我每3秒開一個新連接?或者連接重用?
如果我調用disconnect()我確保沒有新的連接在循環中打開,但是......它會影響性能?
對此提出建議?知道URL存在的最快/最好的方法是什麼?
我認爲他從使用系統資源的角度談論性能。使用網絡是特定於操作系統的,並且可能存在各種奇怪的限制(例如,我曾經有一個Windows問題不允許我在時間t內打開超過n個套接字連接)。 – 2010-06-10 16:29:55
問題在於其他服務器的資源。他們說我們打開了比預期更多的連接。我不確定這是否是由循環內的openConnection()引起的代碼點。 – 2010-06-10 17:20:57
@Carlos Garces您可以嘗試使用'disconnect'來查看他們是否再次抱怨:)或者您可能會要求他們更清楚地闡述限制。 – 2010-06-10 17:33:10