2011-10-06 19 views

答えて

31

HTTP basic access authenticationの場合は、ヘッダーを"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(); 

// ... 

(ログイン名とパスがとにかく多くの場合US-ASCII平野であるようgetBytes()の文字エンコーディングの明示的な指定を簡潔にするために省略されている。加えて、Base64では常にUS-ASCIIバイトを生成します)

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(); 
+2

Oh yeah。私の間違い。 –