我是Spring新手,我使用的是4.3.0版本。在我的代码中,当我在另一个rest调用中调用该方法时,我总是将body作为null。然而,当我使用邮递员测试这种方法时,它的工作非常好。我不确定我在这里缺少什么。我查看了其他类似的问题并尝试了HttpEntity选项,但我仍然缺少一些东西。
这是我的代码。
@RequestMapping(value = "/location/{uuid}", method = RequestMethod.GET)
public ArrayList<String> getLocation(@PathVariable("uuid") String uuid) {
String uriString = "http://user1:pass1@10.10.10.10/LocationProvider/api/" + uuid;
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_XML);
HttpEntity<?> entity = new HttpEntity<String>(headers);
ResponseEntity<String> responseEntity = restTemplate.exchange(uriString, HttpMethod.GET, entity, String.class);
String locations = responseEntity.getBody();
// THIS IS THE RESPONSE I GET IN POSTMAN BUT IN DEBUGGER ITS NULL
// <?xml version="1.0" encoding="ISO-8859-1"?>
// <Locations>
// <City name="New" street="First_Ave" state=""/>
// <City name="old" street="Second_Ave" state=""/>
// </Locations>
return locations;
} catch (RestClientException e) {
logger.error(e.getMessage(), e);
return null;
}
}
非常感谢你的帮助。
答案 0 :(得分:0)
从代码的角度看,一切都很好。当我在邮递员中调用代码时,uriString的末尾没有“/ n”。
当该方法被其他方法调用时,它是“/ n”的uuid。
我刚刚在我的uri中添加了.trim(),如下所示,并且有效。
String uriString = "http://user1:pass1@10.10.10.10/LocationProvider/api/" + uuid.trim();
我想关注每一位承租人是个好主意