求大神帮忙解答 :
目前有一段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<java.lang.String, java.lang.String>
// 修改之后: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表单提交的。