Come gestire IOException e HttpException in Apache HttpClient.execute (HttpMethod)
-
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.
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.