使用HTTP发送请求,本地没有问题,一到测试环境中就中文乱码

使用http请求发送json,本地是没有问题,测试环境的时候出现了中问乱码
这个是http请求的接口

 /**
     * 发送Http post请求
     *
     * @param xmlInfo
     *   json转化成的字符串
     * @param URL
     *   请求url
     * @return 返回信息
     */
    public static String doHttpPost(String xmlInfo, String URL) {
        System.out.println("发起的数据:" + xmlInfo);
        byte[] xmlData = xmlInfo.getBytes();
        InputStream instr = null;
        java.io.ByteArrayOutputStream out = null;
        try {
            java.net.URL url = new URL(URL);
            URLConnection urlCon = url.openConnection();
            urlCon.setDoOutput(true);
            urlCon.setDoInput(true);
            urlCon.setUseCaches(false);
            urlCon.setRequestProperty("content-Type", "application/json");
            urlCon.setRequestProperty("charset", "utf-8");
            urlCon.setRequestProperty("Content-length",
                    String.valueOf(xmlData.length));
            System.out.println(String.valueOf(xmlData.length));
            DataOutputStream printout = new DataOutputStream(
                    urlCon.getOutputStream());
            printout.write(xmlData);
            printout.flush();
            printout.close();
            instr = urlCon.getInputStream();
            byte[] bis = IOUtils.toByteArray(instr);
            String ResponseString = new String(bis, "UTF-8");
            if ((ResponseString == null) || ("".equals(ResponseString.trim()))) {
                System.out.println("返回空");
            }
            System.out.println("返回数据为:" + ResponseString);
            return ResponseString;

        } catch (Exception e) {
            e.printStackTrace();
            return "0";
        } finally {
            try {
                out.close();
                instr.close();

            } catch (Exception ex) {
                return "0";
            }
        }
    }

然后发现是在转byte的时候出现错误,把byte[] xmlData = xmlInfo.getBytes(); 改为 **byte[] xmlData = xmlInfo.getBytes(“utf-8”);**这样上测试环境就没有问题咯 HttpTool.doHttpPost2( JSONArray.fromObject(list).toString(),url);是调用,然后list转json的时候实体类里面有Date类型转不了在报错我也没有深究就改为字符串咯,有时间再去研究一下。

你可能感兴趣的:(spring,cloud)