Я пытаюсь освоить RestTemplate и для этого сделал два тестовых подпружиненных приложения: клиент и сервер.Попробовал несколько примеров на Google, прежде чем спрашивать здесь, и извините за дубликат сообщения, если я пропустил его.
@Slf4j
@RestController
public class ServerController {
@PostMapping("/post")
@ResponseBody
public Resource post(@RequestBody Map<String, String> body,
@RequestParam(name = "path", defaultValue = "NAN") String path) {
if (!body.get("key").equalsIgnoreCase("valid")){
return Resource.builder().ip("'0.0.0.0").scope("KEY NOT VALID").serial(0).build();
}
switch (path) {
case "work":
return Resource.builder().ip("115.212.11.22").scope("home").serial(123).build();
case "home":
return Resource.builder().ip("115.212.11.22").scope("home").serial(456).build();
default:
return Resource.builder().ip("127.0.01").scope("local").serial(789).build();
}
}
}
А вот мой ClientController
@Slf4j
@RestController
public class ClientController {
@GetMapping("/get")
public Resource get() {
String url = "http://localhost:8085/post";
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setAccept(Arrays.asList(MediaType.MULTIPART_FORM_DATA));
httpHeaders.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, String> body = new LinkedMultiValueMap<>();
body.add("key", "valid");
HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(body, httpHeaders);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Resource> response = restTemplate.exchange(url, HttpMethod.POST, entity, Resource.class, Collections.singletonMap("path", "home"));
return response.getBody();
}
}
В ClientController я пытаюсь имитировать то, что я сделал в Почтальоне, но без удачи.
Почтальон PrintScreen
Что я делаю не так?Спасибо!