2015-01-02 22 views
6

HttpClient Bağımlılığımızı 4.0.1'den 4.3.5'e yükseltmeye çalışıyorum. Ve yeni lib'deki bağlantı zaman aşımını ayarlamakta kafam karıştı. Aşağıdaki kodu için:HttpClient 4.3.5 ConnectionRequestTimeOut vs HttpConnectionParams.setConnectionTimeout için ConnectTimeout 4.0.1'de

HttpClient httpClient = new DefaultHttpClient(); 
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 300); 

Aşağıda koduyla değiştirilir: Ben aşina değilim beri veya setConnectionRequestTimeout setConnectTimeout kullanmalısınız Ancak

RequestConfig config = RequestConfig.custom().setConnectTimeout(300).build(); 
HttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build(); 

, emin değilim HttpClient ile. Bana öyle geliyor ki kaynak koddaki java belgesine bağlı olarak setConnectionTimeout kullanmalıyım. Birisi lütfen onaylayabilir mi? Şimdiden teşekkürler. Apache Client sürüm 4.3 içinde

/** 
* Returns the timeout in milliseconds used when requesting a connection 
* from the connection manager. A timeout value of zero is interpreted 
* as an infinite timeout. 
* <p/> 
* A timeout value of zero is interpreted as an infinite timeout. 
* A negative value is interpreted as undefined (system default). 
* <p/> 
* Default: <code>-1</code> 
*/ 
public int getConnectionRequestTimeout() { 
    return connectionRequestTimeout; 
} 

/** 
* Determines the timeout in milliseconds until a connection is established. 
* A timeout value of zero is interpreted as an infinite timeout. 
* <p/> 
* A timeout value of zero is interpreted as an infinite timeout. 
* A negative value is interpreted as undefined (system default). 
* <p/> 
* Default: <code>-1</code> 
*/ 
public int getConnectTimeout() { 
    return connectTimeout; 
} 
+0

bağlantı TO ve istek TO çok farklı şeylerdir. Tekli bağlantı kurulumu çoklu istekler tarafından kullanılabilir. her bir req'in kendi zaman aşımı değeri vardır. Bağlantı sadece bağlantıyı kuran eyleme başvurabilir –

+0

Bu [soru] bölümüne bakın (https://stackoverflow.com/questions/37857327/should-i-still-set-connectionrequesttimeout-on-apache-httpclient-if -Re-use-use) ConnectionRequestTimeout ayarı hakkında – Lu55

cevap

9

https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.3.3/httpclient/src/main/java/org/apache/http/client/config/RequestConfig.java

konfigürasyon (tekrar) tekrar elden edildi. aşağıdaki kodu olarak yeni bir yol: sunucuyla bağlantı kurulana kadar

RequestConfig requestConfig =RequestConfig.custom() 
.setConnectTimeout(connectTimeout) 
.setConnectionRequestTimeout(connectionRequestTimeout) 
.setSocketTimeout(socketTimeout).build(); 

Bağlantı zaman aşımı zaman aşımı olduğunu. BağlantıRequestTimeout bağlantı yöneticisinden bağlantı isteğinde kullanılır.