Spring RestTemplateを使用してJSONデータをポストするRestクライアントを作成しています。 POSTMANを使用して本文のJSONデータを追跡すると、応答が正しく取得されます。
{
"InCode":"test",
"Name":"This is test",
"Email":"[email protected]",
"Id":18,
}
ただし、次のようにSpring RestTemplateを使用してREST APIをヒットしようとすると
ResponseEntity<String> response = restTemplate.exchange(baseUrl,
HttpMethod.POST, getHeaders(), String.class);
private HttpEntity<?> getHeaders() throws JSONException {
JSONObject request = new JSONObject();
request.put("Email", "[email protected]");
request.put("Id", "18");
request.put("Name", "This is test");
request.put("InCode", "test");
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
return new HttpEntity<>(request.toString(), headers);
}
例外が発生します
11:52:56.808 [main] DEBUG o.s.web.client.RestTemplate - Created POST request for "http://server-test/platform/v4/org"
11:52:56.815 [main] DEBUG o.s.web.client.RestTemplate - Setting request Accept header to [text/plain, application/json, application/*+json, */*]
12:03:47.357 [main] DEBUG o.s.web.client.RestTemplate - Writing [{"InCode":"test","Email":"[email protected]","Id":"18","Name":"This is test"}] using [org.springframework.http.converter.StringHttpMessageConverter@6a1aab78]
11:52:57.574 [main] DEBUG o.s.web.client.RestTemplate - POST request for "http://server-test/platform/v4/org" resulted in 500 (Internal Server Error); invoking error handler
Exception in thread "main" org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.Java:94)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.Java:641)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.Java:597)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.Java:557)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.Java:475)
どんな助けにも感謝します。
応答として受け入れるコンテンツタイプを定義する「Accept」ヘッダーを設定しています。
代わりに、ヘッダー「Content-Type」に「application/json」を設定する必要があります。
編集:
あなたのJavaコードidは文字列で、郵便配達員ではその番号です。これによりサーバーが失敗する可能性がありますか?