2009-07-27 2 views
4

Документация (скопирована ниже) не говорит о том, что IOException и HttpException означает в ее контексте.Как обрабатывать IOException и HttpException в Apache HttpClient.execute (HttpMethod)

Мой вопрос: после того, как IOException происходит в методе HttpClient.execute (HttpMethod), нужно ли отбрасывать объект и создавать новый HttpClient для повторного выполнения методов? Или все еще можно использовать (объект HttpClient) для выполнения методов после некоторых из этих исключений?

 
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. 

ответ

4

Вы можете повторно использовать HttpClient объект столько раз, сколько вы хотите. Я работаю с версией 3.0 и не могу говорить о том, изменилось ли это в более поздних версиях.

В отношении исключений, комментарии больше направлены на HttpMethod, чем на клиента.

Что это означает: «Некоторые исключения для транспорта могут быть восстановлены из», заключается в том, что вы можете повторно отправить запрос и получить действительный ответ. IOExceptions имеют тенденцию возникать, когда вы не можете отправить запрос или не получать ответ от сервера (например, сервер не работает или он не может обрабатывать все запросы, которые он получает).

Что это означает: «Обычно исключения протокола не могут быть восстановлены», является то, что сервер, на который вы отправляете HTTP-запрос, не отправляет ответ, соответствующий протоколу HTTP. Обычно повторная отправка запроса не даст другого результата.

Я понимаю, что этот ответ, вероятно, немного поздно, чтобы быть полезным для вас, но будущие читатели могут по-прежнему пользоваться преимуществами.

Это a useful guide on exception handling с HttpClient (устаревшие версии в любом случае). Он может перемещаться, так что вот useful search для поиска страницы.