![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Sliva |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Начанаю изучать java, помогите пожалуйста! Надо скачать данные с сайта по протоколу http, но ничего не получается, потому что там определяется session id, как можно обойти эту защиту? Help!!
|
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: нет Всего: 19 |
В общем случае при обращении к странице, на которой создается сессия (храниться на сервере), на клиент передается идентификатор сессии - тот самый sessionid. Этот идентификатор может сохранятся браузером как куки или прикрепляться к нужным ссылкам на странице (этот подход называется url-rewriting). После этого клиент продолжает работать с веб-приложением и сервер четко его отличает от остальных клиентов.
Мораль: зачем "обходить" sessionid? Надо просто зайти на титульную страницу, где сервер свяжет с клиентом сессию и спокойно работать дальше ) |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
где "сервер свяжет с клиентом сессию" скорее всего означает ввод имени и пароля Это сообщение отредактировал(а) COVD - 13.7.2007, 15:44 |
|||
|
||||
| ekr |
|
|||
![]() ...и это пройдет... ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 6.5.2007 Где: Moscow, RU Репутация: нет Всего: 19 |
абсолютно верно ))) соответственно, концепция меняется: Надо просто зайти на титульную страницу, спокойно передать ей логин и пароль и с не меньшим достоинством работать дальше ))) Улыбаемся и машем ))) (С) Пингвины |
|||
|
||||
| Sliva |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Спасибо за помощь!
Ввода логина и пароля не требуется. Но я не могу понять как мне "имитировать" путь до нужной мне страницы: Допустим www.aaa.ru - главная надо пройти www.aaa.ru/bbb/ а нужная мне - www.aaa.ru/bbb/ccc Т.е. я хочу пройти на www.aaa.ru/bbb/ccc без ввода пароля/логина (это не нужно) программно, с помощью классов URL и URLConnection. я пишу так:
а как потом дойти аналогично до www.aaa.ru/bbb/ccc - не знаю |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Sliva |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Т.е. прописать все три ссылки с одним соединением? Вот так:
И соединение должно быть к той странице, которая мне нужна? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
У тебя 3 разных файла запрашиваются, соответсвенно должо быть 3 коннекта.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Вам наверное надо "имитировать" работу браузера с куками. Если сервер заводит сессию, то он отправляет sessionID в виде куки. Браузер запоминает куки и автоматически добавляет в последующие запросы. Раз вы это делаете программно, то и должы сами этот механизм реализовать. Из ответа на первый запрос извлечь куки (sessionID) - getCookie() , запомнить его и в последующих запросах вставлять в Header посредством setCookie(..). Тогда сервер вас будет "узнавать". |
|||
|
||||
| Sliva |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
В том-то и дело, что мне сказали - это не подходит для данного случая, потому что все данные теряются.
А можно простенький примерчик? |
||||
|
|||||
| COVD |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Вот эти несколько строк без претензий на совершенство: Сначала как создать соединение. Это можно оформить в виде статического метода
Теперь можно пользоваться этим методом в цикле. Цикл как раз отбрабатывает возможные редиректы, которые мы запретили делать автоматически.
Поскольку я все это выковыривал из существующего кода, то возможны ошибки. Это всего лишь пример, иллюстрирующий идею. Это сообщение отредактировал(а) COVD - 16.7.2007, 18:20 |
||||||
|
|||||||
| Sliva |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Ох! Спасибо!!! Только еще скажите - я должна изначально обращаться к адресу
??? |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Как уже советовали выше, вам надо сначала обратиться к той странице, где сервер открывает новую сессию и возвращает sessionID в виде куки. Вы можете просто отправлять запросы на разные страницы и выводить в консоль значение куки из ответа. Там, где оно не равно null , это и будет искомая страница.
А потом уже использовать значение куки для обращения к нужной вам странице. |
|||
|
||||
| Sliva |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Я так понимаю, что надо сначала подключиться к главной странице, потом к следующей (любой), чтобы перехватить sessionId и с ним подключиться к нужной, а реализовать у меня это не получается. Help!!! |
|||
|
||||
| mantracoder |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 3.8.2007 Репутация: нет Всего: 1 |
Sliva, с какого сайта и какие файлы Вы пытаетесь скачать? Киньте ссылку пожалуйста. Я могу накидать Вам небольшой, но работающий пример, который Вы уже дальше будете совершенствовать по собственному разумению.
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |