0

我正在尝试从具有基本身份验证的站点解析多个页面,事实上知道每 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 等。

谢谢

4

0 回答 0