Jsoup соединение с базовой аутентификацией доступа - PullRequest
17 голосов
/ 07 октября 2011

Есть ли способ в Jsoup загрузить документ с веб-сайта с базовой аутентификацией доступа?

Ответы [ 2 ]

32 голосов
/ 07 октября 2011

С аутентификацией базового доступа HTTP вам необходимо отправить заголовок Authorization вместе со значением "Basic " + base64encode("username:password").

например. (с небольшой помощью Кодек Apache Commons Base64 ):

String username = "foo";
String password = "bar";
String login = username + ":" + password;
String base64login = new String(Base64.encodeBase64(login.getBytes()));

Document document = Jsoup
    .connect("http://example.com")
    .header("Authorization", "Basic " + base64login)
    .get();

// ...

(явная спецификация кодировки символов в getBytes() опущена для краткости, поскольку имя пользователя и пароль часто в любом случае просты US-ASCII; кроме того, Base64 всегда генерирует US-ASCII байт)

5 голосов
/ 21 мая 2012
//Log in
Response res = Jsoup
    .connect("url")
    .data("loginField", "login")
    .data("passwordField", "password")
    .method(Method.POST)
    .execute();

Document doc = res.parse();


//Keep logged in
Map<String, String> cookies = res.cookies();

Document doc2 = Jsoup
    .connect("url")
    .cookies(cookies)
    .get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...