![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Здравствуйте товарищи.
Ситуация: Есть GUI java приложение. Надо из него подключиться к сайту, пройти авторизацию, ответить еще на несколько вопросов (сайт не мой и гоняет по нескольким формам на разных страничках) и в конечном итоге запустить броузер с этой итоговой страничкой. Проблемы: 1. Сайт только с сессиями. Поэтому когда разбираю поток для получения кода сессии потом не могу послать новый запрос (используя полученный код) т.к. невозможно выполнить запрос если уже выполнено чтение буфера. При повторном коннекте другой код естественно. 2. Как потом (преодолев первую проблему) запустить броузер с этой же сессией?
|
|||
|
||||
AlexeyVorotnikov |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: 10 Всего: 18 |
А Вы уверены, что сайт использует URL rewriting, а не куки для отслеживания сессий? Может, ID сессии надо в куки пихать?
-------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
может и надо. буду пробовать. |
|||
|
||||
alex_nevolin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 13.8.2007 Репутация: 3 Всего: 4 |
Советую посмотреть эту библиотку:
Jakarta HttpClient Она как раз позволяет работать с Http серварами эмулируя клиента. |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Как раз сижу изучаю.
Может и решу проблему Может кто даст ссылку на русскую доку? Это сообщение отредактировал(а) tigerkvv - 21.11.2007, 16:06 |
|||
|
||||
unkis |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 802 Регистрация: 8.9.2004 Репутация: нет Всего: 1 |
если решишь, не забудь запостить ответ
-------------------- www.unkis.com |
|||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
tigerkvv, русской доки не нужно, там и по примерам все ясно, потом, рекомендую поставить сниффер и пройтись через все формы сайта через браузер вручную, при этом смотря http запросы и ответы через сниффер, сразу увидишь все параметры и значения, затем юзая Jakarta HttpClient напишешь алгоритм всех запросов, которые приведут тебя к нужной странице, а вот как ответ на запрос переслать во внешнее приложение, в данном случае в браузер, даже не знаю, запустить то браузер на заданный линк не проблема, а вот передать при этом куки параметры запроса и т.д уже не так просто я думаю.
-------------------- ![]() |
|||
|
||||
unkis |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 802 Регистрация: 8.9.2004 Репутация: нет Всего: 1 |
но тут можно с генерировать html страницу с формой и открыть её. Но может можно и как-то подругому -------------------- www.unkis.com |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Обход сайта сделал.
HttpClient действительно упрощает многие процедуры. Бьюсь над передачей параметров во внешний броузер. Есть идеи? Вся беда в том что при запуске браузера с указанным URL ему присваивается новая сессия. Можно ли сформировать какой-то скрипт и заставить броузер его выполнить? (походить по сайту) Тогда HttpClient наверное и не нужен будет. Или принудительно переходить на другую сессию? Может какие еще варианты? |
|||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 3 Всего: 25 |
Ну опять же, смотря как идентификатор сессии передается, если через куку, то не знаю, если он в урл дописывается, то это не проблема - сформируешь нужный урл и натравишь на него браузер, если параметры передаются методом пост/гет тоже не проблема - по последнему полученному ответу генеришь html ку в которой прописываешь этот метод, то есть в нем все параметры запроса + нужный урл. Затем делаешь запуск браузер, натравленного на этот файлик. Как я понимаю, если нет привязки к кукам то проблемы особой нет
Это сообщение отредактировал(а) Hidrag - 22.11.2007, 15:21 -------------------- ![]() |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Ура, народ, получается.
Еще чуть-чуть и будет релиз. Выкину процедурку. |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Чуть не забыл выложить готовую процедуру.
Пользуйтесь кому надо. Правда надо дать несколько пояснений: 1. Обход сайта я делал ручками (по совету Hidrak), чтобы в конце выйти на нужный скрипт с нужными параметрами. В конце все получилось довольно просто: регистрируемся, получаем номер сессии, подставляем в нужный параметр и запускаем броузер со строкой. Поэтому прежде чем пользоваться процедурой надо самому определить конечный адрес (хотя во многих случаях он и не меняется, мне наверное не повезло). 2. В коде процедуры использованы параметры которые нужны были мне. Соответствующие коментарии я оставил в теле.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |