posts - 66,  comments - 40,  trackbacks - 0
          Java中可以使用HttpURLConnection來請求WEB資源。
          HttpURLConnection對象不能直接構造,需要通過URL.openConnection()來獲得HttpURLConnection對象,示例代碼如下:
          String szUrl = "http://www.yesky.com/";
          URL url = new URL(szUrl);
          HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();

          HttpURLConnection是基于HTTP協議的,其底層通過socket通信實現。如果不設置超時(timeout),在網絡異常的情況下,可能會導致程序僵死而不繼續往下執行??梢酝ㄟ^以下兩個語句來設置相應的超時:
          System.setProperty("sun.net.client.defaultConnectTimeout", 超時毫秒數字符串);
          System.setProperty("sun.net.client.defaultReadTimeout", 超時毫秒數字符串);

          其中: sun.net.client.defaultConnectTimeout:連接主機的超時時間(單位:毫秒)
          sun.net.client.defaultReadTimeout:從主機讀取數據的超時時間(單位:毫秒)

          例如:
          System.setProperty("sun.net.client.defaultConnectTimeout", "30000");
          System.setProperty("sun.net.client.defaultReadTimeout", "30000");

          JDK 1.5以前的版本,只能通過設置這兩個系統屬性來控制網絡超時。在1.5中,還可以使用HttpURLConnection的父類URLConnection的以下兩個方法:
          setConnectTimeout:設置連接主機超時(單位:毫秒)
          setReadTimeout:設置從主機讀取數據超時(單位:毫秒)

          例如:
          HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
          urlCon.setConnectTimeout(30000);
          urlCon.setReadTimeout(30000);

          需要注意的是,筆者在JDK1.4.2環境下,發現在設置了defaultReadTimeout的情況下,如果發生網絡超時,HttpURLConnection會自動重新提交一次請求,出現一次請求調用,請求服務器兩次的問題(Trouble)。我認為這是JDK1.4.2的一個bug。在JDK1.5.0中,此問題已得到解決,不存在自動重發現象。

          posted on 2006-11-27 09:14 happytian 閱讀(859) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2006年11月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          Welcome here, my friend!

          常用鏈接

          留言簿(12)

          隨筆檔案(66)

          文章分類

          文章檔案(63)

          web

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 89348
          • 排名 - 647

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宿州市| 黄冈市| 张家界市| 安徽省| 漯河市| 兴义市| 郸城县| 三穗县| 新密市| 马山县| 朝阳县| 阿拉尔市| 西峡县| 嘉禾县| 右玉县| 容城县| 武陟县| 洛南县| 芜湖市| 淮滨县| 佛学| 绥阳县| 彰化市| 海安县| 犍为县| 金秀| 屯留县| 漠河县| 东海县| 永春县| 开化县| 福安市| 嵊州市| 嘉兴市| 平顺县| 湘西| 桂东县| 富阳市| 阿瓦提县| 武山县| 镇康县|