restTemplate POST 実装例

Spring Frameworkが提供するHTTPクライアントです。

ContentTypeはapplication/jsonを使い、Stringのデータを送信する実装例です。
もちろんDTOの定義もできますが、今回は割愛。

controller実装

@PostMapping("post")
public String saveFile(@RequestBody String reqData, @RequestHeader HttpHeaders headers) {
    try {
        System.out.println(reqData);
	System.out.println(headers);
	System.out.println(headers.get("Authorization").get(0));

	return "OK";
    } catch (Exception e) {
        e.printStackTrace();
	return "Error";
    }
}

リクエスト送信側

public static void main(String[] args) throws IOException {
    try {
        String url = "http://localhost:8080/post"; 
        String auth = "test:pass"; 

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.add("Authorization", "Basic " + Base64.getEncoder().encodeToString(auth.getBytes()));

        HttpEntity<String> requestEntity = new HttpEntity<>("test", headers);

        RestTemplate restTemplate = new RestTemplate();

        ResponseEntity<String> response = restTemplate.postForEntity(url, requestEntity, String.class);

        if (response.getStatusCode() == HttpStatus.OK) {
            System.out.println("success");
        }

    } catch (Exception e) {
	e.printStackTrace();
    }
}

参考文献

https://spring.pleiades.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です