@RestController
public class DeptControllerConsumer {
private static final String REST_URL_PREFIX = "http://localhost:8001";
@Autowired
private RestTemplate restTemplate;
@RequestMapping(value="/consumer/dept/add")
public boolean add(Dept dept)
{
return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add", dept, Boolean.class);
}
@RequestMapping(value="/consumer/dept/get/{id}")
public Dept get(@PathVariable("id") Long id)
{
return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id, Dept.class);
}
@SuppressWarnings("unchecked")
@RequestMapping(value="/consumer/dept/list")
public List<Dept> list()
{
return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list", List.class);
}
}
pomにを追加します。
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
起動クラスにを追加します。
@Bean
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(5000);
factory.setConnectTimeout(5000);
return factory;
}
要求ヘッダを設定する方式
HttpHeaders head = new HttpHeaders();
MediaType mediaType = MediaType.parseMediaType("application/json;charset=UTF-8 ");
head.setContentType(mediaType);
head.add("api-version", "1.0");
MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
requestBody.add("roundid", "1");
HttpEntity<MultiValueMap> requestEntity = new HttpEntity<MultiValueMap>(requestBody, head);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://xxx", requestEntity, String.class);
System.out.println(responseEntity.getBody());