Spring BootでRestTemplateを使用したPOSTリクエストの送信方法


  1. RestTemplateの基本的な使い方: RestTemplateは、HTTPリクエストを送信してレスポンスを受け取るための便利なクラスです。以下は、基本的な使い方の例です。
RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/api/endpoint";
String requestBody = "Hello, World!";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, headers);
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, requestEntity, String.class);
String response = responseEntity.getBody();

この例では、RestTemplateを作成し、送信するPOSTリクエストのURL、リクエストボディ、およびヘッダーを設定します。postForEntityメソッドを使用してリクエストを送信し、レスポンスを取得します。

  1. パラメータ付きのPOSTリクエストの送信: POSTリクエストにパラメータを追加する場合、URLにパラメータを組み込むか、リクエストボディにパラメータを追加することができます。以下は、それぞれの方法の例です。

URLにパラメータを組み込む場合:

String url = "http://example.com/api/endpoint?param1=value1&param2=value2";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, null, String.class);
String response = responseEntity.getBody();

リクエストボディにパラメータを追加する場合:

String url = "http://example.com/api/endpoint";
MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
requestBody.add("param1", "value1");
requestBody.add("param2", "value2");
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(requestBody, headers);
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, requestEntity, String.class);
String response = responseEntity.getBody();
  1. JSONリクエストの送信: JSON形式のリクエストを送信する場合は、リクエストボディにJSONデータを設定する必要があります。以下は、JSONリクエストの例です。
String url = "http://example.com/api/endpoint";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
String requestBody = "{\"key\": \"value\"}";
HttpEntity<String> requestEntity = new HttpEntity<>(requestBody, headers);
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, requestEntity, String.class);
String response = responseEntity.getBody();

上記の例では、リクエストボディにJSONデータを設定しています。必要に応じて、JSONデータをオブジェクトとしてシリアライズして送信することもできます。

これらは、Spring BootでRestTemplateを使用してPOSTリクエストを送信するための基本的な方法の一部です。必要に応じて、例を修正して使用してください。