springboot 客户端接收gb2312编码问题

   @PostMapping(value = { "/hxz/v1/ConsumTransactions" }, produces="application/json;charset=UTF-8")
   @ResponseBody
    public Object payConsume(@RequestBody Map params) {

        String cardNo = params.get("CardNo").toString();
        System.out.println(cardNo);
        if (cardNo.equals("0009406647")) {
            Map<String, Object> map = new HashMap<>();
            map.put("Status",0);
            map.put("Msg","Invalid card");
            return map;
        }else {
            Map<String, Object> map = new HashMap<>();
            map.put("Status",1);
            map.put("Msg","error");
             return map;
          }
}

上面这段不报错,但是我把它改成

produces="application/json;charset=gb2312"  就报错了。

错误 提示:

"status": 500,

    "error": "Internal Server Error",

    "trace": "org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class java.util.HashMap] with preset Content-Type 'null'\r\n\tat org.springframework.web.。。。。。。。。。。

"message": "No converter for [class java.util.HashMap] with preset Content-Type 'null'",

    "path": "/hxz/v1/ConsumTransactions"

 

说明这里的json数据是utf-8编码的,你改成其他编码格式所以报错了

方法的参数里面加入response对象,设置ContentType

你把页面提交的编码方式改为utf-8不就行了

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632