如何使用Java处理419 http响应

问题描述 投票:3回答:1

我正在尝试通过特定的网站进行解析,并且当我的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或其他网站时,我会明白这一点。

java apache-httpclient-4.x
1个回答
0
投票

我正在从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();
© www.soinside.com 2019 - 2024. All rights reserved.