- 論壇徽章:
- 0
|
Java中可以使用HttpURLConnection來請求WEB資源。
HttpURLConnection對象不能直接構造,需要通過URL.openConnection()來獲得HttpURLConnection對象,示例代碼如下:
String urlStr=
www.jaddy.org
;
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
HttpURLConnection是基于HTTP協(xié)議的,其底層通過socket通信實現(xiàn)。如果不設置超時(timeout),在網(wǎng)絡異常的情況下,可能會導致程序僵死而不繼續(xù)往下執(zhí)行。可以通過以下兩個語句來設置相應的超時:
System.setProperty("sun.net.client.defaultConnectTimeout", 超時毫秒數(shù)字符串);
System.setProperty("sun.net.client.defaultReadTimeout", 超時毫秒數(shù)字符串);
其中: sun.net.client.defaultConnectTimeout:連接主機的超時時間(單位:毫秒)
sun.net.client.defaultReadTimeout:從主機讀取數(shù)據(jù)的超時時間(單位:毫秒)
例如:
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");
System.setProperty("sun.net.client.defaultReadTimeout", "30000");
JDK 1.5以前的版本,只能通過設置這兩個系統(tǒng)屬性來控制網(wǎng)絡超時。在1.5中,還可以使用HttpURLConnection的父類URLConnection的以下兩個方法:
setConnectTimeout:設置連接主機超時(單位:毫秒)
setReadTimeout:設置從主機讀取數(shù)據(jù)超時(單位:毫秒)
例如:
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.setConnectTimeout(30000);
urlCon.setReadTimeout(30000);
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/109937/showart_2162623.html |
|