Закрытие соединения HttpClient до истечения времени ожидания - PullRequest
6 голосов
/ 29 декабря 2011

В настоящее время я использую HTTPClient 4 для отправки POST-запроса к удаленному серверу, например:

  HttpResponse response = httpClient.execute( request );
  InputStream is = response.getEntity().getContent();

Когда сервер недоступен, требуется некоторое время, прежде чем соединение действительно установится.время вышло.В течение этого промежутка execute () является блокирующим вызовом.

Я ищу способ отменить execute () до естественного тайм-аута, чтобы мой поток, выполняющий execute (), больше не блокировался изакончится изящно.

Я пробовал

request.abort();

и

httpClient.getConnectionManager().shutdown();

Но оба этих вызова не прерывают execute ().Есть ли другой способ отменить текущую попытку подключения?

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Завершение вызова в Future и вызов get with timeout .

0 голосов
/ 29 декабря 2011

Я думаю, вы можете установить connectionTimeout на любое максимальное время, которое вы хотите, используя следующие методы: setConnectionTimeout()

setSoTimeout()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...