String Stringifiedjson = new Gson().toJson(user);
Log.d("SpringAndroid", Stringifiedjson);
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAccept(Collections.singletonList(new
MediaType("application", "json")));
HttpEntity <? > requestEntity = new HttpEntity < Object >
(Stringifiedjson, requestHeaders);
GsonHttpMessageConverter messageConverter = new GsonHttpMessageConverter();
List < HttpMessageConverter <? >> messageConverters =
new ArrayList < HttpMessageConverter <? >> ();
messageConverters.add(messageConverter);
RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(messageConverters);
try {
ResponseEntity<String> responseEntity = restTemplate.
exchange(url, HttpMethod.POST, requestEntity, String.class);
}
我收到 400 Bad Request,但是当我在 fiddler 中发送 Stringifiedjson
时。我得到了有效的响应
。现在如何使用 RestTemplate 发布 GSON 对象
最佳答案
我也遇到了同样的问题。我通过传递对象本身而不是包含该对象的 JSON 表示形式的字符串来解决这个问题。
简而言之,我改变了:
String jsonObject = convertToJSON(myObject);
HttpEntity <? > requestEntity = new HttpEntity <String>
(jsonObject, requestHeaders);
致:
HttpEntity <? > requestEntity = new HttpEntity <MyObject>
(myObject, requestHeaders);
在本例中,MyObject 是我想要在 Controller 的 @RequestBody 参数中捕获的 java bean。
关于java - HTTPClient错误异常: 400 Bad Request using Spring REST template,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13141926/