2016-10-06 5 views
0

私は次のメソッドでPOSTリクエストを送信しようとしており、リクエストを送信する際にHTTPレスポンスコードを返します。問題のRestTemplateのpostForObjectはリクエストの送信直後に終了します

コード:

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の予想される動作であると言っているオンライン文書を見つけることができません。

ありがとうございます!

答えて

0

問題は、postForObject()がnullを返すことでした。私は後でそれを隠していた例外捕手を持っていた。

私の代わりにnullを返し、そして私は、次のブロックを使用して、HTTPステータスコードを取得することができたしませんでしたpostForEntityを、使用:

ResponseEntity<String> re = request.postForEntity(URL, postRequest, String.class); 
HttpStatus status = re.getStatusCode(); 
statusCode = status.value(); 
関連する問題