我想知道在通過Spring rest模板創建新連接之前,HttpConnection在活動時保持活動狀態的時間。我查看了默認的連接超時和讀取超時參數,但我相信這些用於連接超時的情況下,當連接因爲某些故障而未建立時等。使用Spring Rest模板時,HttpConnection的默認保持活動時間
我在尋找的是,如果沒有任何活動(或)不活動,連接保持活動狀態的時間以及如何通過Spring Rest Template(或者)基礎機制來配置它。
我想知道在通過Spring rest模板創建新連接之前,HttpConnection在活動時保持活動狀態的時間。我查看了默認的連接超時和讀取超時參數,但我相信這些用於連接超時的情況下,當連接因爲某些故障而未建立時等。使用Spring Rest模板時,HttpConnection的默認保持活動時間
我在尋找的是,如果沒有任何活動(或)不活動,連接保持活動狀態的時間以及如何通過Spring Rest Template(或者)基礎機制來配置它。
默認情況下,RestTemplate
使用SimpleClientHttpRequestFactory
,這反過來會打開Java的HttpURLConnection
,默認情況下它支持在特定條件下保持活動狀態。如果你想在連接上是如何處理更多的控制,你可以創建restTemplate與HttpComponentsClientHttpRequestFactory
,它使用Apache HttpClient
庫,如:
@Bean
RestTemplate restTemplate(SimpleClientHttpRequestFactory factory) {
return new RestTemplate(factory);
}
你也可以看到一些討論在這裏:
How to Reuse HttpUrlConnection?
Persistent HttpURLConnection in Java
How to use RestTemplate efficiently in Multithreaded environment?
感謝您的答案,它可以幫助我走,最後一個問題 我使用簡單的RestTemplate與SimpleClientHttpRequestFactory,基本上是第一個請求通過(RestTemplate)連接另一個REST服務大約需要5秒鐘,我發現java.net.UrlConnection.connect()正在進行,但隨後的調用很快。如果服務器閒置一分鐘,延遲再次發生,這是默認行爲嗎?連接池連接是否消除了服務器空閒時的延遲? – sam
通常連接時間少於5秒。可能存在網絡問題或目標休息服務的問題。 – jny
我正在搜索如何在成功登錄時重用會話cookie,並且使用HttpComponentsClientHttpRequestFactory它很好(不需要爲每個新請求添加cookie) –
您打算ning在呼叫之間保持http連接是否打開? – jny
我想了解什麼是默認行爲,多長時間的連接可用,而它是無效的 – sam