系统间接口联调总是报500 for URL 和 乱码

两个系统做数据传输时,懒省事,直接访问 action 方式。结果总是报500,或者fileNotFount。

究其原因是因为两边的数据格式没对应上。post请求返回的格式是String,数据提供方返回的数据格式Map啊JSON啊都不怎么对。只得返回了json.toString.。记录一下,欢迎拍砖指导。

net.sf.json.JSONObject obj = net.sf.json.JSONObject.fromObject(resultMap);
        
        try {
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/plain, utf-8");
            PrintWriter out = response.getWriter();
            out.print(obj.toString());
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
//        return obj.toString();
return obj.toString();  直接返回这个接受方会出现乱码。
关于乱码这个问题,网上也有其他解决方案:比如 mapping中增加produces

@Controller
@RequestMapping(value = "/query", produces = "text/html;charset=UTF-8")
public class QueryController {

@RequestMapping(value = "***",produces={"application/json;","text/html;charset=UTF-8;"})  

可参见

http://blog.csdn.net/u010979495/article/details/50610856

原文地址:https://www.cnblogs.com/yeyuchangfeng/p/6774793.html