Jsoup与基本访问身份验证的连接

use*_*940 19 java basic-authentication jsoup

Jsoup中是否有一种方法可以从具有基本访问身份验证的网站加载文档?

Bal*_*usC 36

使用HTTP基本访问身份验证,您需要发送Authorization标头以及值"Basic " + base64encode("username:password").

例如(在Apache Commons Codec 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();

// ...
Run Code Online (Sandbox Code Playgroud)

(getBytes()为简洁起见,省略了字符编码的明确规范,因为登录名和传递通常都是普通US-ASCII的;此外,Base64总是生成US-ASCII字节)


Igo*_*tos 5

//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();
Run Code Online (Sandbox Code Playgroud)

  • 哦耶.我的错. (2认同)