gpt4 book ai didi

java - 如何在 Java 中处理 419 http 响应

转载 作者:行者123 更新时间:2023-12-04 22:22:26 26 4
gpt4 key购买 nike

我正在尝试解析特定网站,并在我的 java 代码调用它时获得 419 的 HTTP 响应代码。我需要解析响应以查找内容,但我被困在响应代码上。

我尝试使用 apache http 客户端(版本 4.5.6)组合一个 Java 程序来调用我需要解析的网站。我得到的 http 响应代码是 419。

try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
HttpGet httpGet = new HttpGet("http://www.website.com");
try (CloseableHttpResponse response1 = httpclient.execute(httpGet)) {
System.out.println(response1.getStatusLine());
HttpEntity entity1 = response1.getEntity();
EntityUtils.consume(entity1);
}
}

它打印出来的结果是这样的:

HTTP/1.1 419 status code 419

我期待 200

HTTP/1.1 200 OK

当我将网站更改为谷歌或其他网站时,我明白了。

最佳答案

我正在通过 HttpClient 库以及来自 POSTMAN 发出 get 请求并面临相同的 419 错误。要解决这个 419 错误,我们需要添加 csrf提交表单时的 token 。

但是,万一您仍然想知道如何找到csrf即使您正在制作 获取 请求和面对状态 419 .就我而言 我通过添加 user-agent: xxxx 解决了这个问题 header 中的 token .

例子:

user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36

HttpClient 代码:
  connectionManager = new PoolingHttpClientConnectionManager();
...
...
...

httpClient = HttpClients.custom()
.setConnectionManager(connectionManager)
.setRedirectStrategy(new LaxRedirectStrategy())
.setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36")
.build();

关于java - 如何在 Java 中处理 419 http 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54172913/

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