REST POST works correctly with POSTMAN but exception when using Spring RestTemplate
我正在编写一个REST客户机来使用SpringRestTemplate发布JSON数据。使用postman并在body中跟踪json数据,可以正确获得响应-
1 2 3 4 5 6 |
但是,当尝试使用SpringRestTemplate访问RESTAPI时,如下所示
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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); } |
号
我得到例外-
1 2 3 4 5 6 7 8 9 10 | 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"头,它定义将接受哪个内容类型作为响应。
相反,必须使用"application/json"设置头"content type"。
编辑:
在Java代码中ID是一个字符串,在邮递员中它是一个数字。这会导致服务器故障吗?