http://xye-462438944-163-com.iteye.com/blog/1205894
在調用org.apache.commons.httpclient.HttpClient類中的方法executeMethod時,如:
Java代碼 HttpClient client = new HttpClient(); httpGet = new GetMethod(url); client.getParams().setIntParameter("http.socket.timeout", 3000);
HttpClient client = new HttpClient();httpGet = new GetMethod(url);client.getParams().setIntParameter("http.socket.timeout", 3000); Java代碼 client.executeMethod(httpGet);
client.executeMethod(httpGet);
系統可能會出現java.net.SocketTimeoutException: Read timed out 異常,而在瀏覽器中直接輸入url連結時又可以訪問,這時候可能是因為httpClient在擷取連結時候受到逾時限制。這時候只需要將逾時限制去掉即可。即將代碼client.getParams().setIntParameter("http.socket.timeout", 3000);注釋掉或者將其逾時限制時間延長
http://mywork.iteye.com/blog/430754
這兩天項目在測試環境下通過URLConnection 做資料傳遞時,出現了如下錯誤
java.net.SocketTimeoutException: Read timed out
經過尋找研究,原因是:
用戶端沒有在限定的時間內將資料發送給伺服器,伺服器為了保證服務效能,認定那個串連已經失效,所以出現上述異常。
由此得出解決方案為:
增大用戶端的逾時時間。
如 Java代碼 System.setProperty("sun.net.client.defaultConnectTimeout", String .valueOf(10000));// (單位:毫秒) System.setProperty("sun.net.client.defaultReadTimeout", String .valueOf(10000)); // (單位:毫秒)
System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(10000));// (單位:毫秒)System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(10000)); // (單位:毫秒) 分享到: