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

          HttpURLConnection設(shè)置網(wǎng)絡(luò)超時

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

          ?

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

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

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

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

          例如:
          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參數(shù)詳解

          linux下設(shè)置connect連接超時的方法

          java socket 用法(一)

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

          主站蜘蛛池模板: 时尚| 石首市| 平远县| 富蕴县| 泉州市| 普安县| 苍山县| 锦屏县| 田林县| 淮滨县| 合肥市| 资兴市| 永年县| 邓州市| 孝义市| 策勒县| 红桥区| 枣阳市| 措勤县| 麻阳| 汤阴县| 招远市| 英山县| 监利县| 武胜县| 平顶山市| 富宁县| 伊宁县| 万州区| 桃源县| 德化县| 军事| 雷波县| 乐陵市| 密云县| 南部县| 沁水县| 沙洋县| 姚安县| 临安市| 江永县|