我正在尝试编写一个代码,该代码将打开需要身份验证的多个网址,并解析网页文本以获取SUCCESS消息。如果我在身份验证弹出窗口中提供用户名和密码,则其余部分将在不必每次都提供身份验证的情况下完成。现在,我的身份验证类看起来像这样:
public class CustomAuthenticator extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
String username = "********";
String password = "********";
return new PasswordAuthentication(username, password.toCharArray());
}
}
我的网址解析方法是:
public static String urlSuccessUnknown(String url) {
Document doc;
String res = null;
Authenticator.setDefault(new CustomAuthenticator());
try {
doc = Jsoup.connect(url).get();
res = doc.body().text();
if(res.indexOf("SUCCESS") >= 0)
return "SUCCESS";
else if(!(res.indexOf("SUCCESS") >= 0))
return "FLAG";
}
catch (Exception e) { e.printStackTrace(); }
return "Unable to correctly parse";
}
每当我用一个URL测试时,我会收到一个" java.lang.NullPointerException"在第#34; res = doc.body()。text();"和我的代码的其他部分中的另外两行。我做错了什么?
此外,当网页打开时,它会在弹出窗口中询问用户名和密码,而不是嵌入页面中。我只想包含这个,以防CustomAuthenticator不是提供用户名和密码的正确方法。谢谢你的时间。