Come gestire IOException e HttpException in Apache HttpClient.execute (HttpMethod)

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

  •  19-09-2019
  •  | 
  •  

Domanda

La documentazione (copiato sotto) non dice molto su ciò che significa nel suo contesto IOException e HttpException.

La mia domanda è: dopo un'IOException si verifica in un metodo HttpClient.execute (HttpMethod), devo eliminare l'oggetto e creare un nuovo HttpClient al fine di eseguire di nuovo i metodi? O è ancora utilizzabile (l'oggetto HttpClient) per eseguire i metodi dopo un po 'di queste eccezioni si verificano?

executeMethod

public int executeMethod(HttpMethod method)
                  throws IOException,
                         HttpException
Executes the given HTTP method.
Parameters:
method - the HTTP method to execute.
Returns:
the method's response code
Throws:
IOException - If an I/O (transport) error occurs. Some transport exceptions can be recovered from.
HttpException - If a protocol exception occurs. Usually protocol exceptions cannot be recovered from.
È stato utile?

Soluzione

È possibile riutilizzare l'oggetto HttpClient tutte le volte che si vuole. Sto lavorando con la versione 3.0, e non posso parlare a se o non questo è cambiato nelle versioni più recenti.

Per quanto riguarda le eccezioni, i commenti sono diretti più al HttpMethod rispetto al client.

Che cosa significa da, "Alcune eccezioni di trasporto possono essere recuperati da", è che si può essere in grado di inviare nuovamente la richiesta e ottenere una risposta valida. IOExceptions tendono ad accadere quando non è possibile inviare una richiesta o non riceve una risposta dal server (ad esempio, il server è inattivo, oppure non in grado di gestire tutte le richieste che sta ricevendo).

Che cosa significa da, "Di solito le eccezioni di protocollo non possono essere recuperati da", è che il server si sta facendo una richiesta HTTP non è l'invio di una risposta che soddisfi il protocollo HTTP (s). Di solito, inviare nuovamente la richiesta non produrrà un risultato diverso.

Mi rendo conto che questa risposta è probabilmente un po 'tardi per essere utile a voi, ma i lettori futuri possono ancora beneficiare.

Questa è un'utile guida sulla gestione con HttpClient eccezione (legacy le versioni comunque). Può muoversi, quindi ecco una ricerca utile per trovare la pagina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top