Estou tentando atualizar nossa dependência HttpClient de 4.0.1 para 4.3.5. E ficou confuso ao definir o tempo limite de conexão na nova biblioteca. Para o seguinte código:
HttpClient httpClient = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 300);
Ele será substituído pelo código abaixo:
RequestConfig config = RequestConfig.custom().setConnectTimeout(300).build();
HttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
No entanto, não tenho certeza se devo usar setConnectTimeout ou setConnectionRequestTimeout, pois não estou familiarizado com HttpClient. Parece-me que devo usar setConnectionTimeout com base no documento java no código-fonte. Alguém pode confirmar? Desde já, obrigado.
/**
* 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;
}
Na versão 4.3 do Apache Http Client a configuração foi refatorada (novamente). a nova forma como o seguinte código:
RequestConfig requestConfig =RequestConfig.custom()
.setConnectTimeout(connectTimeout)
.setConnectionRequestTimeout(connectionRequestTimeout)
.setSocketTimeout(socketTimeout).build();
connectTimeout
é o tempo limite até que uma conexão com o servidor seja estabelecida. connectionRequestTimeout
é usado ao solicitar uma conexão do gerenciador de conexões.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras