重定向后Spring RestTemplate.getForEntity()的意外响应代码

时间:2017-07-13 18:59:13

标签: java spring redirect httprequest resttemplate

RestTemplate创建如下:       (HttpClientBuilder来自 org.apache.http.impl.client 。*)

CloseableHttpClient chc = HttpClientBuilder.create().disableRedirectHandling().build();
ClientHttpRequestFactory noRedirectFactory = new HttpComponentsClientHttpRequestFactory(chc)

RestTemplate restTemplate = new RestTemplate(noRedirectFactory);

使用如下:

ResponseEntity<String> response = restTemplate.getForEntity( ${url} , String.class);
int responseCode = response.getStatusCodeValue(); 

现在为$ {url}的3个案例,仅在查询参数中存在差异:

  1. http://www.boxofficemojo.com/intl/ukraine/?yr=2017&wk=27 查询参数值都可以,页面存在, responseCode == 200 (如预期的那样)
  2. http://www.boxofficemojo.com/intl/ukraine/?yr=99999999&wk=999999 查询参数值错误,重定向 responseCode == 302 (正如预期的那样,感谢 noRedirectFactory
  3. http://www.boxofficemojo.com/intl/ukraine/?someRandomParam=99999999 查询参数错误,重定向 responseCode == 200 与第二种情况有何不同?
  4. 提前致谢。

0 个答案:

没有答案