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<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表单提交的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值