2014-03-28 84 views
6

當阿帕奇的HttpClient 4.3建設CloseableHttpClient,我可以用的Apache的HttpClient 4.3 SocketConfig.getSoTimeout()VS RequestConfig.getSocketTimeout()

SocketConfig.custom().setSoTimeout(soTimeout).build() 

並將其發送給我的連接管理器的setDefaultSocketConfig()方法。

我還可以使用

RequestConfig.custom().setSocketTimeout(socketTimeout).build() 

,並將其發送到我的http客戶端生成器的setDefaultRequestConfig()方法。

這些將有相同的最終效果或不同的最終效果?

回答

4

SocketConfig中的套接字超時表示應用於新創建的連接的默認值。通過在RequestConfig中設置套接字超時的非零值,可以爲各個請求覆蓋此值。

+0

那麼如果同時存在'SocketConfig'和一個* default *'RequestConfig',會發生什麼? –

+0

只有在創建新套接字時,SocketConfig才適用。 RequestConfig套接字超時值始終會覆蓋在構建時設置的值。 – oleg

+0

換句話說,無論RequestConfig的套接字超時如何,SocketConfig的套接字超時_is仍舊用於創建初始套接字。我們發現了SocketConfig和RequestConfig兩個套接字超時問題。 – Stano

相關問題