Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по httpclient 4 
V
    Опции темы
CHEM_Eugene
Дата 22.12.2009, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



Суть проблемы такова:

Если последовательно идут два запроса через один экзампляр BasicHttpClient, то на втором происходит подвисание и следующая строка за вызовом execute для второго запроса уже не выполняется.

Первый запрос httpPost, второй httpGet
Если для второго запроса создать ещё экземпляр BasicHttpClient, то все отрабатывает.

Кто может помочь разобраться в чем дело?

Версия HttpClient 4.0.1
PM MAIL   Вверх
Kangaroo
Дата 22.12.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 2
Всего: 104



Как заканчиваешь первый запрос?
Полное логирование включал? Что показывает?


--------------------
Lost....
PM MAIL MSN   Вверх
CHEM_Eugene
Дата 23.12.2009, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



Kangaroo, примерно так (код точно не могу представить, но суть такова):

Код

HttpClient httpclient = new BasicHttpClient();
HttpContext context = new HttpContext();
HttpPost post = new HttpPost();
//тут к запросу приделывается форма с параметрами (имитация html-формы авторизации)

HttpResponse response = httpclient.execute(post, context)

//разбор response, получение url второго запроса из Location

HttpGet httpGet = new HttpGet(url);
HttpResponse response2 = httpclient.execute(httpGet);


Логирование не включал, надо посмотреть в эту сторону, спасибо! 
PM MAIL   Вверх
CHEM_Eugene
Дата 23.12.2009, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



Сам разобрался. Нужно вызвать у первого запроса метод abort, чтобы освободить connection. Делать это нужно, когда все необходимые данные уже считаны из response.

В моем случае 
Код
post.abort();

PM MAIL   Вверх
Kangaroo
Дата 23.12.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 2
Всего: 104



Ну вот и отлично, отмечай тему как "решенную" справа вверху.


--------------------
Lost....
PM MAIL MSN   Вверх
Platon
Дата 8.1.2010, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 3
Всего: 40



CHEM_Eugene, я бы тут сделал небольшое уточнение по методу abort() Лучше вызывать метод releaseConnection() и лучше в блоке finally {}
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.