Заполнение формы входа на сайт, который использует необработанные данные формы - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь зайти на сайт lectio.dk, используя HttpsURLConnection в Java. Изначально я думал, что это будет так же просто, как отправить запрос на сайт с файлами cookie с соответствующим именем пользователя и паролем, но это не позволяет мне так легко войти. Веб-сайт использует идентификатор сеанса ASP.NET, который я могу использовать для доступа к веб-сайту при получении из браузера.

Когда я смотрю на режим разработчика в Google Chrome, мне кажется, что он захватывает логиндетали непосредственно из текстовых полей (а не через куки), которые, по моим сведениям, невозможно редактировать из Java. Это, я думаю, потому что данные формы, содержащие данные из двух текстовых полей, являются единственным местом, где я вижу записанные данные для входа в систему. этот веб-сайт и получение доступа к веб-сайту как зарегистрированный пользователь.

1 Ответ

0 голосов
/ 06 октября 2019

Вы можете загрузить страницу с базовой аутентификацией. Например:

    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    String userPassword = username + ":" + password;
    String userPasswordEncoded = Base64.getEncoder().encodeToString(userPassword.getBytes(StandardCharsets.UTF_8));
    connection.setRequestProperty("Authorization", "Basic " + userPasswordEncoded);
    connection.connect();
    ...

Это должно быть частью любого запроса на защищенный контент. Подумайте, если вы используете клиентскую библиотеку HTTP, вы могли бы также установить аутентификацию за один раз, включив поддержку cookie. Например, OkHttp - неплохая библиотека для этого. См. Также Android OkHttp с базовой аутентификацией .

...