我正在尝试通过特定的网站进行解析,并且当我的Java代码调用它时,HTTP响应代码为419。我需要解析响应以查找内容,并且停留在响应代码上。
我曾尝试使用apache http客户端(版本4.5.6)组合一个Java程序来调用我需要解析的网站。我返回的http响应代码为419。
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://www.website.com");
CloseableHttpResponse response1 =
httpclient.execute(httpGet);
try {
System.out.println(response1.getStatusLine());
HttpEntity entity1 = response1.getEntity();
EntityUtils.consume(entity1);
} finally {
response1.close();
}
打印出来的结果是这样的:HTTP / 1.1 419状态码419我期望200HTTP / 1.1 200 OK当我将网站更改为Google或其他网站时,我会明白这一点。
我正在从POSTMAN发出get请求,并且遇到相同的419错误。但是,以防万一,即使您正在发出GET请求并且面对状态419时,仍然想知道如何查找csrf
令牌。在我的情况下我通过在标题中添加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();