java - HTTPClient错误异常: 400 Bad Request using Spring REST template

标签 java android spring gson

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/

相关文章:

android - 无法获取未知属性 'android'

java - JPA2向表添加引用约束使带有延迟获取的条件查询变得复杂,需要建议

java - 如何在 EDT (Java Swing) 上运行“另存为”菜单

java - 在抽象类上实现 ID 的优雅方法

android - onclick 事件即使在长按时也会执行

android - 我对 pdftron 集成有疑问

spring - 如何在 Spring WebFlow 中发送参数 SubFlow

多帐户 Web 应用程序中的 Java Spring 身份验证、授权和所有权

java - 在 server.xml 之外定义上下文时遇到问题

java - Spring Java 配置和 BeanFactoryPostProcessor