1

我被困在尝试使用 Jsoup 登录网站以从同一网站的另一个链接获取信息。当我连接时,它不会从会话中返回所有 cookie。我不确定是否应该使用 __utma、__utmb 等来保持记录,但这是我认为唯一阻止我记录的事情。

这是代码。

public static void main(String[] args) throws Exception {
    String url = "https://www.evoicetelecom.com.br/customers/myAccount";

    final Connection.Response res = Jsoup.connect("http://www.evoicetelecom.com.br/login/")
                .data("userName", "user")
                .data("password", "pass")
                .method(Connection.Method.POST)
                .execute();


    Document doc = res.parse();
    Map<String, String> cookies = res.cookies();


Document doc2 = Jsoup.connect(url).cookies(cookies).get();

Elements element = doc2.select("body");

System.out.println(element);

    }

打印只是为了检查它是否正确。

4

1 回答 1

1

我遇到了类似的问题,但在我的情况下,cookie 值为空(“”),我发现原因是 cookie 值在响应头解析器中被重置。由于 Jsoup 是开源的,因此调试响应处理很简单。尝试一下,您可能会找到问题的答案。在我的例子中,我只是在 HttpConnection.Base 类的 cookie 方法中添加了这个小 if 语句:

        if(value.length() == 0 && cookies.containsKey(name)){
            return (T) this;
        }
于 2013-01-26T22:03:28.480 回答