次のメソッドで POST リクエストを送信し、リクエストの送信時に HTTP 応答コードを返そうとしています。
問題のコード:
private ClientHttpRequestFactory getClientHttpRequestFactory() {
HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory();
clientHttpRequestFactory.setConnectTimeout(timeout);
return clientHttpRequestFactory;
}
public int sendRequest() {
RestTemplate request = new RestTemplate(getClientHttpRequestFactory());
String URL = buildURL();
HttpHeaders headers = buildHeaders();
validatePayload();
HttpEntity<String> postRequest = new HttpEntity<String>(requestPayload, headers);
return request.postForObject(URL, postRequest, ResponseEntity.class).getStatusCodeValue();
}
ClientHttpRequestFactory を生成しているので、タイムアウトを設定し、最終的に RestTemplate の postForObject を使用して POST を送信できます。ここでの問題は、POST 要求を送信するとすぐにプログラムが終了し (コマンド ラインで実行され)、応答コードを処理できないことです。これが postForObject の予想される動作であると言っているドキュメントをオンラインで見つけることができません。
ありがとう!