HttpClient在默认情况下会自动处理HTTP重定向。具体来说,当HttpClient在执行HTTP请求时遇到重定向响应(例如3xx状态码),它将检查响应中的Location头部,然后自动发送一个新的请求到Location指定的URL。
HttpClient提供了一些配置选项来控制重定向的行为。例如,可以通过设置最大重定向次数来防止出现无限重定向的情况。此外,还可以通过设置要遵循的重定向方式(如仅遵循GET请求)来进一步控制重定向。
需要注意的是,HttpClient的自动重定向功能可能会导致安全风险,因为攻击者可以通过重定向用户到恶意网站来进行钓鱼攻击。因此,在某些情况下,可能需要手动处理重定向响应以确保安全性。
CloseableHttpClient httpClient = HttpClients.custom() .disableRedirectHandling() .build();
HttpGet request = new HttpGet("http://example.com");
HttpResponse response = httpClient.execute(request);
int statusCode = response.getStatusLine().getStatusCode();
// 处理响应
httpClient.close();