Java 如何正确地从网站获取cookie?

Java 如何正确地从网站获取cookie?,java,parsing,heroku,cookies,Java,Parsing,Heroku,Cookies,我的代码可以正确地从站点接收cookie,并在从集成开发环境运行cookie时将其保存在文件中: String url = "https://www.avito.ru"; Map<String, String> cookies = Jsoup.connect(url).execute().cookies(); ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file)); out.writeOb

我的代码可以正确地从站点接收cookie,并在从集成开发环境运行cookie时将其保存在文件中:

String url = "https://www.avito.ru";
Map<String, String> cookies = Jsoup.connect(url).execute().cookies();
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(cookies);
System.out.println("Get cookies from: " + url + " and write into: " + file.getName());
System.out.println(cookies);
out.close();

是否有任何正确获取Cookie的解决方案?

由于服务器返回403状态代码,您将获得一个
HttpStatusException
。如果要从错误响应(4xx-5xx状态代码)中读取Cookie,请添加方法:

Map cookies=Jsoup.connect(url)
.ignoreHttpErrors(真)
.execute()
.cookies();

现在没有例外,但cookies映射仍然为空。这意味着当您收到403响应时,没有cookies。您应该能够在web浏览器中调试它。似乎我找到了解决方案。需要添加代码行:
.proxy(stringip,int-port)
这意味着您的网络在代理后面,但这与您所问的问题完全不同。
try {
       Map <String, String> cookies = Jsoup.connect(url)
                                    .execute()
                                    .cookies();
       cookieHandler.setAvitoCookies(cookies);
       System.out.println("> AVITO COOKIE:" + cookies); 
    } catch (IOException e) {
        e.printStackTrace();
    }
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403, URL=https://www.avito.ru
Map <String, String> cookies = Jsoup.connect(url)
                                    .ignoreHttpErrors(true)
                                    .execute()
                                    .cookies();