Android请求数据格式与Java后台需求格式不匹配HttpMediaTypeNotSupportedException:

求大神帮忙解答 : 

目前有一段app的Java接口,ios端调接口完全没有问题,但是android端不是请求体丢失就是json转化异常

 // 后端需要json数据,但是android端给的参数是x-www-form-urlencoded的,怎么解决?
 // 最开始报错:

org.springframework.web.HttpMediaTypeNotSupportedException: 
Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

// 添加请求头之后报错:

org.springframework.http.converter.HttpMessageNotReadableException: 
Required request body is missing: 
包名.类名.sendCode(java.util.Map 

// 修改之后:json转化错误

org.springframework.http.converter.HttpMessageNotReadableException: 
JSON parse error: Unrecognized token 'phoneNumber': was expecting ('true', 'false' or 'null'); 
nested exception is com.fasterxml.jackson.core.JsonParseException: 
Unrecognized token 'phoneNumber': was expecting ('true', 'false' or 'null')
 at [Source: (PushbackInputStream); line: 1, column: 13] 

目前问题已解决:

其实以上问题所有原因在于android端请求数据格式不对 (或者说请求数据格式不匹配):

        1·是否设置Headers请求参数Content-Type:application/json,charset=UTF-8,Accept:json

发送格式和接收格式都需要设置;

        2·请求参数创建bean序列化;

        3·POST请求数据是在请求体中,此时参数发送应该使用@Body注解,#Fields注解默认是x-www-form-urlencoded表单提交的。

 

 

你可能感兴趣的:(Android)