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”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章