我正在尝试从具有基本身份验证的站点解析多个页面,事实上知道每 30 秒有 8 次登录限制,所以我需要保存一个 cookie 以便能够比这更快地解析。
我写了一个文本程序只是为了尝试 cookie:
String login = username + ":" + new String(password);
String base64login = new String(Base64.encodeBase64(login.getBytes()));
System.setProperty("javax.net.ssl.trustStore", "C:\\axis2\\jssecacerts");
CookieHandler.setDefault(new CookieManager());
Map<String, String> cookies = null;
try {
Response response = Jsoup
.connect(
"https://url.com/site.html")
.header("Authorization", "Basic " + base64login)
.method(Method.POST)
.execute();
cookies = response.cookies();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int i = 0; i < 15; ++i)
{
Document doc;
try {
doc = Jsoup
.connect("https://url.com/site.html")
.cookies(cookies)
.get();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for 循环将多次访问同一页面,它第一次工作 8 次,然后它给了我一个 401 答案。读取 cookie Map 时,它包含正确的会话 ID 等。
谢谢