基本身份验证登录后Web刮擦

时间:2016-02-19 14:47:46

标签: android ssl jsoup basic-authentication

我需要抓取具有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);

我不知道如何让它发挥作用。有人可以帮帮我吗?

1 个答案:

答案 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之后没有分号。

相关问题