RestTemplate客户端中的301 ResponseCode

时间:2017-06-17 21:11:59

标签: spring rest

我试图在Spring中使用RestTemplate来使用服务。我尝试了每次获得301作为响应代码。但是,我很高兴在使用POSTMAN时从同一个uri获得json响应。

以下是获取州名单的代码:

HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
String baseUri = "http://www.whizapi.com/api/v2/util/ui/in/indian-states-list";
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(baseUri)
                .queryParam("project-app-key","my-key");
HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);
ResponseEntity<String> stats = restTemplate.exchange(builder.build().toUri(),
                HttpMethod.GET,entity ,String.class);

请告知我是否遗漏了任何内容。

1 个答案:

答案 0 :(得分:0)

HTTP 301是永久重定向。您正在访问过时的网址。

检查此网址http://www.whizapi.com/api/v2/util/ui/in/indian-states-list已重定向到https://www.whizapi.com/api/v2/util/ui/in/indian-states-list.ashx

在位置响应标题中可以看到相同的内容,如下图所示。

Location Response Header

因此,您应该直接从restTemplate对象请求https://www.whizapi.com/api/v2/util/ui/in/indian-states-list.ashx

可以找到更多详细信息here

希望这有帮助!