Android请求数据格式与Java后台需求格式不匹配HttpMediaTypeNotSupportedException:
16lz
2021-01-26
求大神帮忙解答 :
目前有一段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中通知的使用
- 从J2EE转向Android的第一天
- Android:Toast简单消息提示框
- Android(安卓)“adb forward”端口映射
- 第八次课——数据存储方式
- Android(安卓)Room Entity使用
- 【安卓笔记】android客户端向tomcat服务器发送请求中文乱码问题
- Activity之launchMode(运行模式)
- Android联网使用HttpClient 和HttpResponse 小结