我正在使用HttpURLConnection類來發出http請求。 我的代碼看起來像這個 -HttpURLConnection.getInputStream()塊
while(true){
try{
connection=(HttpURLConnection)url.openConnection();
connection.setDoOutput(true);
connection.setConnectTimeout(2*1000);
InputStream in=connection.getInputStream();
}
catch(SocketTimeOutException e){}
catch(IOException e){}
}
我做了一些數據處理,一旦檢索到InputStream對象。我的問題是,如果我讓程序運行足夠長時間,則調用getInputStream將阻塞,並且我永遠不會過去。
我錯過了什麼嗎?任何指針或幫助將不勝感激。謝謝。
不要在'while(true)'循環中做這種事'catch(SocketTimeOutException e){}'。這將很難調試或優雅地停止你的程序。 – artbristol
@artbristol你想說什麼......這是從我們的生產代碼:) –
除了做@artbristol說你有沒有試過註釋'connection.setDoOutput(true)',因爲這意味着它期望你打電話'connection.getOutputStream()'並在Http體內寫一些東西 –