赞
踩
使用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类型转不了在报错我也没有深究就改为字符串咯,有时间再去研究一下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。