как войти на сайт через Java? - PullRequest
4 голосов
/ 09 сентября 2009

Я пробовал несколько способов войти на сайт через Java. Я использовал watij, HTMLunit и т. Д., Но из-за не очень хорошо знакомых с ними я не могу успешно войти в систему.

Может кто-нибудь подробно рассказать, как войти через java

Если говорить более конкретно, я хочу войти в ORKUT и получить источник страниц страницы, которая появляется после входа в систему.

Ответы [ 4 ]

5 голосов
/ 09 сентября 2009

Ответ зависит от того, как сайт пытается аутентифицировать вас:

  • Нужно ли указывать имя пользователя и пароль в заголовках HTTP (базовая аутентификация)?
  • Или вам нужно заполнить и отправить форму, содержащую имя пользователя и пароль?

Для любого из них я бы порекомендовал commons-httpclient, хотя последний метод очистки экрана всегда запрограммирован.

Для базовой аутентификации взгляните на httpclient Руководство по аутентификации .

Для проверки подлинности с помощью форм вам необходимо проверить исходный HTML-код страницы, чтобы понять,

  • URL-адрес, на который отправляется форма
  • Какие имена параметров для отправки

Для получения справки о том, как отправить форму в httpclient, посмотрите документацию по методу POST .

Сайт httpclient также содержит базовое руководство .

3 голосов
/ 09 сентября 2009

Ваши лучшие шансы сделать такие вещи и выжить в реальной сети - с Selenium-RC.

По сути, вы должны дистанционно управлять браузером, чтобы делать все, что вы можете делать вручную (кроме загрузки файлов).

Много раз я использовал этот шаблон:

  1. Войти с селеном
  2. Возьми печенье
  3. Продолжите с моей любимой библиотекой HTTP.
0 голосов
/ 09 сентября 2009

Orkut использует авторизацию Google для входа в систему. Я предлагаю использовать HTTP-отладчик, такой как Fiddler, для отслеживания трафика во время входа в систему. Вероятно, существуют файлы cookie и перенаправления, которые необходимо скопировать.

Вообще,

  1. Посмотрите на форму входа в систему, получите имена полей имени и пароля и действие, которое форма отправляет на
  2. Создайте запрос POST к URL-адресу действия и правильно введите имя и пароль (например, имя = имя пользователя и пароль = pwd)
  3. Был ли это HTTPS (убедитесь, что сделали это правильно)
  4. Если в заголовке ответа указан SET-COOKIE, обязательно отправьте этот файл cookie на все последующие запросы
  5. Если в ответе есть перенаправление, выполните GET для перенаправления, при необходимости отправив файлы cookie
  6. (продолжайте цикл на # 5, пока вы не получите перенаправление)

Ответ, который вы получите в конце этого, является источником страницы.

Взгляните на это:

http://code.google.com/apis/gdata/javadoc/com/google/gdata/client/http/AuthSubUtil.html http://code.google.com/p/apex-google-data/source/browse/trunk/google_data_toolkit/src/classes/AuthSubUtil.cls

Похоже на код Google для аутентификации с помощью своих сервисов.

0 голосов
/ 09 сентября 2009

Почему вы пытаетесь войти через Java, а не просто использовать cURL? Есть ли что-то конкретное, что вы пытаетесь достичь?

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