我正在尝试通过特定网站进行解析,并且当我的java代码调用它时,HTTP响应代码为419。我需要解析响应以查找内容,并且停留在响应代码上。
我尝试使用apache http客户端(版本4.5.6)组合一个Java程序来调用我需要解析的网站。我得到的http响应代码是419。
x''+x=0
它打印出来的结果是这样的: HTTP / 1.1 419状态码419 我期望200 HTTP / 1.1 200 OK 当我将网站更改为google或其他网站时,我就知道了。
答案 0 :(得分:1)
我正在从POSTMAN以及从GETMAN中获取请求,并且遇到相同的419错误。为了解决这个问题,我们需要在提交表单时添加csrf
令牌。但是,如果您仍然想知道如何找到csrf
令牌,即使您正在发出 GET 请求并面临状态 419 。就我而言,我通过在标题中添加user-agent: xxxx
令牌解决了该问题。
示例:
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();