具有基本访问身份验证的 Jsoup 连接
2022-09-02 02:51:29
在 Jsoup 中,有没有办法从具有基本访问身份验证的网站加载文档?
在 Jsoup 中,有没有办法从具有基本访问身份验证的网站加载文档?
使用 HTTP 基本访问身份验证时,您需要发送标头以及值 。Authorization
"Basic " + base64encode("username:password")
例如:
String username = "foo";
String password = "bar";
String login = username + ":" + password;
String base64login = Base64.getEncoder().encodeToString(login.getBytes());
Document document = Jsoup
.connect("http://example.com")
.header("Authorization", "Basic " + base64login)
.get();
// ...
(为了简洁起见,getBytes()
中字符编码的显式规范被省略,因为登录名和传递通常是普通的US-ASCII
;此外,Base64总是生成US-ASCII
字节)
//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();