天天看點

HttpClient的逾時用法小記

HttpClient在使用中有兩個逾時時間,是一直接觸和使用的,由于上次工作中使用httpClient造成了系統悲劇的情況,特地對它的兩個 逾時時間進行了小小的測試,在這裡記錄下。  

   測試版本為HttpClient——3.1

      一:連接配接逾時:connectionTimeout

      1:指的是連接配接一個url的連接配接等待時間。

      2:設定方法為:

       public class TestHttpClientMain {

       3:測試的時候,将url改為一個不存在的url:“http://test.com”

      4:逾時時間3000ms過後,系統報出異常。

       org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 3000 ms

       二:讀取資料逾時:soTimeout

      1:指的是連接配接上一個url,擷取response的傳回等待時間

      2:設定方法

      public class TestHttpClientMain {

    3:測試的時候的連接配接url為我本地開啟的一個url,http://localhost:8080 /firstTest.htm?method=test

      在我這個測試url裡,當通路到這個連結時,線程sleep一段時間,來模拟傳回response逾時。

       @RequestMapping(params = "method=test") //<——②

      4:将讀取response傳回逾時時間設的時間比那個sleep時間短之後,運作程式給出異常:

        java.net.SocketTimeoutException: Read timed out

ok,以後再寫httpClient這兩個逾時時間一定要加上,不加就很可能悲劇的了。