我需要抓取具有http基本身份验证的页面背后的内容。此外,该网站有ssl。 我到目前为止所写的内容:
Document document = Jsoup.connect("https://someuser:somepassword@somedomain.com").get();
但它不起作用。 还尝试过:
Document document = Jsoup
.connect("https://somedomain.com").get();
.header("Authorization", "Basic " + base64login)
.get();
其中base64login为:
private String title;
String username = "someuser";
String password = "somepass";
String login = username + ":" + password;
public String base64login = Base64.encodeToString(login.getBytes(), Base64.DEFAULT);
我不知道如何让它发挥作用。有人可以帮帮我吗?
答案 0 :(得分:1)
没有URL,很难知道,但我猜你的默认Charset编码与网络服务器的预期不符。也许试试这个:
public String base64login = new String(
Base64.encodeBase64(login.getBytes(Charset.forName("UTF-8")))
);
这使用org.apache.commons.codec.binary.Base64方法。
登录应该按照您在第二种方法中尝试进行,即使用"Authorization"
标题。顺便说一句 - 您的代码中有错误。必须在header
之前调用get
方法,并且connect
之后没有分号。