gpt4 book ai didi

java - 如何正确获取网站的cookies?

转载 作者:行者123 更新时间:2023-11-30 12:03:14 25 4
gpt4 key购买 nike

当我从集成开发环境运行它时,我的代码可以正确地从站点接收 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();

但是当我在 Heroku 服务器上上传并运行它时(但此时我暂时将 cookie 存储在处理程序对象中),我在日志中得到一个错误。它发生在 .execute() 步。Heroku 代码:

try {
Map <String, String> cookies = Jsoup.connect(url)
.execute()
.cookies();
cookieHandler.setAvitoCookies(cookies);
System.out.println("> AVITO COOKIE:" + cookies);
} catch (IOException e) {
e.printStackTrace();
}

Heroku 错误日志:

org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403, URL=https://www.avito.ru

有什么办法可以正常获取cookies吗?

最佳答案

您收到 HttpStatusException 因为服务器返回了 403 状态代码。如果您想从错误响应(4xx - 5xx 状态代码)中读取 cookie,请添加 ignoreHttpErrors(true)方法:

Map <String, String> cookies = Jsoup.connect(url)
.ignoreHttpErrors(true)
.execute()
.cookies();

关于java - 如何正确获取网站的cookies?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57911551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com