Подключение к URL и получение 401 с помощью Java

Я могу легко пройти аутентификацию на этом сайте через браузер. Но НЕТ ВОЗМОЖНОГО способа подключиться к нему с помощью Java. Я всегда получаю ошибку 401. Я пытался подключиться через Jsoup и HTMLUnit, и все равно ничего. У кого-нибудь есть хоть какое-то объяснение, почему это происходит?

Да, кстати... Просто пытаясь подключиться к странице БЕЗ аутентификации, я получаю ошибку 401. Что, на мой взгляд, чертовски странно.

  1. Базовая комбинация URLConnection = new URLConnection(URL); (собственный Java API) не работала.
  2. Jsoup с Document = Response.parse(); не работал
  3. HTMLUnit с использованием WebClient тоже не работал
  4. Любая из вышеперечисленных попыток эмулировать браузер также не сработала.

person Igor Brusamolin Lobo Santos    schedule 22.05.2012    source источник


Ответы (2)


Ошибка 401 — это ошибка аутентификации. Это вероятно, потому что агент, который вы указываете (или не указываете) при подключении, не считается действительным. (Может быть и больше, в зависимости от того, как настроен этот сайт.)

Вы можете указать пользовательский агент в JSoup, см. этот ответ на этот вопрос на SO.

person Turnsole    schedule 22.05.2012
comment
Нет. Пробовал с 3-х разных браузеров, ничего не выходит. - person Igor Brusamolin Lobo Santos; 23.05.2012

Если вы используете HttpURLConnection, возможно, это поможет...

java.net.Authenticator.setDefault( new Authenticator() {
  protected java.net.PasswordAuthentication getPasswordAuthentication() {
    return new java.net.PasswordAuthentication ("user", "pass".toCharArray());
  }
});
person elias    schedule 22.05.2012
comment
Сама проблема не в аутентификации. При ОТКРЫТИИ страницы получаю ошибку 401. Я попытался получить файлы cookie с главной страницы, а затем перенаправить на страницу входа, но все равно получаю ошибку 401. Вот эта часть мне кажется странной.. - person Igor Brusamolin Lobo Santos; 23.05.2012
comment
OK. Я использовал это, и все еще ничего не получил. В любом случае, спасибо. - person Igor Brusamolin Lobo Santos; 23.05.2012