HttpClient - l'impostazione di un timeout presa “globale”, e un timeout separata per ogni richiesta

StackOverflow https://stackoverflow.com/questions/3003235

  •  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.

È stato utile?

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
scroll top