2011-03-18 69 views
14

需要使用java.net.URL類進行遠程數據請求的超時設置。一些谷歌搜索發現,有兩個系統屬性可用於設置URL類的超時,如下所示。用於自定義超時設置的java.net.URL的替代方法

sun.net.client.defaultConnectTimeout 
sun.net.client.defaultReadTimeout 

我無法控制所有系統,也不希望每個人都繼續設置系統屬性。有沒有其他的選擇可以讓我設置超時的遠程請求。 沒有任何庫,如果在java本身可用是最好的。

回答

49

如果你打開一個URLConnectionURL可以設置超時是這樣的:你如何使用

URL url = new URL(urlPath); 
URLConnection con = url.openConnection(); 
con.setConnectTimeout(connectTimeout); 
con.setReadTimeout(readTimeout); 
InputStream in = con.getInputStream(); 

URL或者你在它傳遞給?

+2

他很可能簡單地調用'URL#openStream()',它確實會使用默認超時。 – BalusC 2011-03-18 12:24:33

+0

@ ^:完全....感謝您的回答.... – Vishwanath 2011-03-18 13:14:28

+0

讀取超時工作完美,但連接超時接縫不起作用 – agad 2014-06-03 11:47:40