Java 如何正确地从网站获取cookie?
我的代码可以正确地从站点接收cookie,并在从集成开发环境运行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
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();