关于java接收json数据为空的解决方案
今天老大给了一个需求,接收外部参数,存到本地数据库中,但是我写完代码之后通过测试工具进行测试的时候发现后台获取的参数全部为空,或者参数不匹配,代码如下。
1、java代码
@RequestMapping(value = "/pushCa_tszsxx", method = RequestMethod.POST)
public ReturnValue pushCa_tszsxx(@RequestBody Ca_tszsxx ca_tszsxx){
log.info("推送证书信息接口请求信息:"+ca_tszsxx.toString());
try {
return this.caService.pushCa_tszsxx(ca_tszsxx);
}catch (Exception e) {
log.error(e.getMessage(), e);
ReturnValue returnValue = ReturnValue.newErrorInstance("推送证书信息接口发生异常,请联系管理员!");
return returnValue;
}
}
2、postman请求参数
3、定位问题
发现问题之后我在网上找了好久都没有解决,最后给同事要了他们之前写的代码通过比较发现代码没问题,考虑是参数传递的时候处理问题,相同时要他们之前通过测试工具测试的时发的请求,最后发现问题所在他们在发送请求的时候都会在header中指定Content-Type参数。按照他们的方法在请求时向header中添加Content-Type参数之后问题解决。
Content-Type:application/json;charset=utf-8
注:header中Content-Type参数的值一定要是‘application/json;charset=utf-8’,若不写charset=utf-8后台会将传递的参数会全部赋给对象中的第一个字段。
至于原因的话,我现在也没搞清楚。