2011-10-06 22 views

risposta

31

Con HTTP basic access authentication è necessario inviare l'intestazione Authorization insieme al valore "Basic " + base64encode("username:password").

E.g. (Con piccolo aiuto di 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(); 

// ... 

(esplicita dei codifica dei caratteri in getBytes() è omessa per brevità come login e pass è spesso normale US-ASCII comunque; inoltre, Base64 genera sempre US-ASCII byte)

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 sì. Errore mio. –

Problemi correlati