2011-10-06 24 views

Trả lời

31

Với HTTP basic access authentication bạn cần gửi tiêu đề Authorization cùng với giá trị "Basic " + base64encode("username:password").

Ví dụ: (Với sự giúp đỡ của 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(); 

// ... 

(đặc điểm kỹ thuật rõ ràng của mã hóa ký tự trong getBytes() được bỏ qua cho ngắn gọn như tên đăng nhập và vượt qua thường là đồng bằng US-ASCII anyway; bên cạnh đó, Base64 luôn tạo US-ASCII bytes)

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. Lỗi của tôi. –

Các vấn đề liên quan