Java Restful风格的API 定义接口的入参和返回值编码UTF-8

项目对外提供接口,但是发现返回值中文乱码!
原因是外部系统规定调用的接口入参和返回值必须是UTF-8编码的JSON格式,所以接口定义必须如下处理:

@RequestMapping(value = "/doAAA", method = RequestMethod.POST,headers = "Content-type=application/json;charset=UTF-8",produces = "text/html;charset=utf-8")
    @ResponseBody
    public String doApproval(@RequestBody MobileApprovalDoAssistParameter doAssistParameter) throws Exception {
    
    
        log.info("***********receive doAssist json:"+ JSONObject.toJSONString(doAssistParameter));
        MobileApprovalResponseDTO mobileApprovalResponseDTO = iMobileApprovalService.doAssist(doAssistParameter);
        return JSONObject.toJSONString(mobileApprovalResponseDTO);

    }

备注:上面是自己封装的接口,定义了入参是json格式并且是utf-8编码,返回值定义了text/html;charset=utf-8 ,因为自己代码里已经手动将对象转换成了JSON格式字符串,所以直接定义text/html格式就可以,如果方法返回的是一个对象,可以定义成application/json;charset=UTF-8,那么方法返回时就自动帮我们转化成json,这个根据自己的实际使用情况,自行处理一下就可以了。
入参是编码:headers = “Content-type=application/json;charset=UTF-8”
返回值:produces = “text/html;charset=utf-8”

猜你喜欢

转载自blog.csdn.net/wujian_csdn_csdn/article/details/106815542
今日推荐