新项目,前端老哥用的angela框架
后端方法上一定要加个@Responsebody注解才能连通..
加上后,发现我后端postman测试的时候老出错误:
首先出现错误是这样的:
"error": "Unsupported Media Type",
"exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
"message": "Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported",
使用以下Json格式解决后
又出现了下面的错误:
Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize instance of com.****.****.****.**** out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of com..****.****.****.**** out of START_ARRAY token
at [Source: java.io.PushbackInputStream@1a7e14f1; line: 1, column: 1]
之前解决过一次..中间过了好长时间竟然忘了怎么解决的了..
好记性不如烂笔头..
解决后还是记下来..
方法1: 给相关的类添加无参构造方法; 不起作用
方法2: 使用ObjectMapper处理复杂类型
String cols="[{'id':'3'},{'id':'3'}]";
ObjectMapper mapper = new ObjectMapper();
JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, Bean.class);
//Map类型
mapper.getTypeFactory().constructParametricType(HashMap.class,String.class, Bean.class);
List<Bean> lst = (List<Bean>)mapper.readValue(cols, javaType);
-------------------------------------------------------------------
String jsonString="[{'id':'1'},{'id':'2'}]";
ObjectMapper mapper = new ObjectMapper();
List<Bean> beanList = mapper.readValue(jsonString, new TypeReference<List<Bean>>() {});
上次解决的时候用过, 没有解决我的问题, 证明问题不是出在这..
方法3: 更改入参的json格式
我之前在postman使用的json格式是:
--这个是json的数组格式
[{
"pageIndex":1,
"pageSize":6
}]
是不对的.. 参数并不是数组..
改成这样的:
{
"pageIndex":1,
"pageSize":6
}
所有问题都解决了...
看报错,必然是传输问题,所以找到源头,解决请求响应格式就好了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。