MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          HttpURLConnection設置網絡超時

          Posted on 2010-04-13 19:00 leekiang 閱讀(1738) 評論(0)  編輯  收藏 所屬分類: javaio,tcp
          Java中可以使用HttpURLConnection來請求WEB資源。
          HttpURLConnection對象不能直接構造,需要通過 URL.openConnection()來獲得HttpURLConnection對象,示例代碼如下:
          String urlStr= www.ttt.org;
          URL url = new URL(urlStr);
          HttpURLConnection conn = (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);

          來源:http://www.xd-tech.com.cn/blog/article.asp?id=37

          另外可參考java中處理http連接超時的方法

          JDK中的URLConnection參數詳解

          linux下設置connect連接超時的方法

          java socket 用法(一)

          Linux,可以修改/proc/sys/net/ipv4/tcp_syn_retries的值,缺省是72,大約5分鐘左右,改小點時間就短些

          主站蜘蛛池模板: 龙门县| 湘阴县| 武川县| 洛阳市| 上高县| 盈江县| 比如县| 紫金县| 泰宁县| 兴业县| 广河县| 航空| 巫山县| 特克斯县| 永和县| 临海市| 方城县| 崇阳县| 荆门市| 昌邑市| 屯留县| 容城县| 板桥市| 龙山县| 青阳县| 汉沽区| 毕节市| 宝丰县| 格尔木市| 蒙山县| 丰县| 仁寿县| 嵊州市| 钦州市| 洛川县| 磴口县| 龙山县| 临武县| 镇原县| 右玉县| 南开区|