HttpClient - l'impostazione di un timeout presa “globale”, e un timeout separata per ogni richiesta
-
25-09-2019 - |
Domanda
Con HttpClient, io pongo il / timeout di connessione presa di default con il seguente:
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setSoTimeout(params, 30000);
HttpConnectionParams.setConnectionTimeout(params, 30000);
mClient = new DefaultHttpClient(connectionManager, params);
Mi chiedo se posso ignorare questi valori su una base per ogni richiesta?
Modifica:? Sarebbe questo lavoro
HttpParams params = req.getParams(); // req is an HttpRequest object
HttpConnectionParams.setSoTimeout(params, 60000);
HttpConnectionParams.setConnectionTimeout(params, 60000);
ho provato, e sembra, ma è difficile test / creare una situazione in cui si verifica un timeout.
Soluzione
Se si utilizza HttpClient 4.0 si potrebbe fare questo:
mClient = new DefaultHttpClient(connectionManager, params) {
protected HttpParams determineParams(HttpRequest req) {
//Fill in your impl here
}
Altri suggerimenti
Si può semplicemente impostare i parametri per l'oggetto richiesta. Per i dettagli si veda: http://hc.apache.org/httpcomponents- client-ga / tutorial / html / connmgmt.html # d4e391
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow