我试图在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);
请告知我是否遗漏了任何内容。
答案 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
。
在位置响应标题中可以看到相同的内容,如下图所示。
因此,您应该直接从restTemplate对象请求https://www.whizapi.com/api/v2/util/ui/in/indian-states-list.ashx
。
可以找到更多详细信息here
希望这有帮助!