Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

<Ол>
  • Вход с селеном
  • Возьми печенье
  • Продолжите с моей любимой библиотекой HTTP.
  • Другие советы

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

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

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

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

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

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

    Чтобы узнать, как отправить форму в httpclient, см. документация по методу POST.

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

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

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

    В целом,

    1. Посмотрите на форму входа, найдите имена полей имени и пароля и действие, которое отправляет форма.
    2. Создайте POST-запрос к URL-адресу действия и правильно укажите имя и пароль (например,имя = имя пользователя и пароль = пароль)
    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 для аутентификации в их сервисах.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top