我有一个
Spring MVC服务,签名:
@RequestMapping(method = RequestMethod.POST,value = "/addUser",consumes = "application/json") public @ResponseBody User addUser(@RequestBody User user) {
这在context.xml中
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jacksonMessageConverter" /> </list> </property> </bean>
我做了一个Post请求,总是给我一个错误的400错误请求.
我写一个过滤器来读取请求内容,是这样的:
编辑json:
{ "email": "Anchor","latitude": 40.3139461,"longitude": -3.8810229,"name": "a","online": true,"password": "a","deviceRegId": "APA91bGnD1EuqEm9cpoHsenC-HEphQJRniEnhPovK24QkKkLBXrDesSCP6CFlyOKwR1huwSI28Wd-DdN0N8MDKle7myYB7Dznzc3Z11ZOv3jMlJEIegykpnnnYScrElw2czQEa4pKFeQW7BklUsUS-IB15LMqH_Ag" }
编辑:用户类
public class User implements Serializable{ @JsonProperty("deviceRegId") private java.lang.String deviceRegistrationID; @JsonProperty("email") private java.lang.String email; @JsonProperty("latitude") private java.lang.Double latitude; @JsonProperty("longitude") private java.lang.Double longitude; @JsonProperty("name") private java.lang.String name; @JsonProperty("online") private java.lang.Boolean online; @JsonProperty("password") private java.lang.String password; public User(String deviceRegid) { this.deviceRegistrationID = deviceRegid; this.online = true; } public java.lang.String getDeviceRegistrationID() { return deviceRegistrationID; } public java.lang.String getEmail() { return email; } public void setEmail(java.lang.String email) { this.email = email; } public java.lang.Double getLatitude() { return latitude; } public void setLatitude(java.lang.Double latitude) { this.latitude = latitude; } public java.lang.Double getLongitude() { return longitude; } public void setLongitude(java.lang.Double longitude) { this.longitude = longitude; } public java.lang.String getName() { return name; } public void setName(java.lang.String name) { this.name = name; } public java.lang.Boolean getOnline() { return online; } public void setOnline(java.lang.Boolean online) { this.online = online; } /** * @return value or {@code null} for none */ public java.lang.String getPassword() { return password; } /** * @param password * password or {@code null} for none */ public void setPassword(java.lang.String password) { this.password = password; }
有什么问题?