2017-08-16 91 views
1

我想了解restTemplate上的readTimeout,它究竟是什麼?Spring rest模板readTimeOut

它是在我們得到超時異常之前請求可以花費的總時間量嗎?

回答

2

您可以在RestTemplate定義讀取超時如下:

HttpComponentsClientHttpRequestFactory clientRequestFactory = new HttpComponentsClientHttpRequestFactory(); 
// set the read timeot, this value is in miliseconds 
clientRequestFactory.setReadTimeout(500); 

RestTemplate restTemplate = new RestTemplate(clientRequestFactory); 

鑑於X米利斯一個readTimeout,通過RestTemplate實例,它需要更長的時間比X米利斯將導致提出的任何要求一個ResourceAccessException,包裝一個java.net.SocketTimeoutException與異常消息:「讀取超時」。

的超時由插座連接器的HttpClient實例,它被包裹由RestTemplate所以當請求首先撞擊其插座,並且當這些以先到者爲準停止時鐘開始內部實際實現:在請求完成或readTimeout是到達。

實際上,這意味着任何比配置的readTmeout花費更長時間的請求都將失敗並出現超時異常。

2

據我所知,在restTemplate我們有3個類型的超時 的1)ConnectionRequestTimeout 這是超時以毫秒爲從的ConnectionManager獲得連接

2)ConnectionTimeout 這是在毫秒時間超時用於建立之間的連接源和目的地

3)ReadTimeout 這是millis中的超時,它預計響應/結果應該從目標端點返回。