Jsoupに、基本アクセス認証を使用してWebサイトからドキュメントをロードする方法はありますか?
HTTP基本アクセス認証 の場合、"Basic " + base64encode("username:password")
の値とともにAuthorization
ヘッダーを送信する必要があります。
例えば。 (ほとんど助けを借りずに 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();
// ...
_
(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();