美文网首页
Android Http postJson 中文乱码问题

Android Http postJson 中文乱码问题

作者: smartsharp | 来源:发表于2019-11-11 11:42 被阅读0次

Android App开发中,使用HttpURLConnection进行post请求时,post出的json数据含有中文在服务端有乱码。
检查post 请求必要字段都添加了:

conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");

/* optional request header */
conn.setRequestProperty("Accept", "application/json");
conn.setRequestMethod("POST");
conn.setRequestProperty("Charset", "UTF-8");

但是 post 出的数据服务端还是显示乱码,最后跟踪发现是写 json 数据的地方出问题了,原代码如下:

if(jsonStr != null) {
            DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
            wr.writeBytes(jsonStr);
            wr.flush();
            wr.close();
 }

问题就出现在 DataOutputStream 上,jsonStr 本身是 utf8编码,结果 DataOutputStream writeBytes里面就出问题了。
解决办法把 DataOutputStream 去掉,直接写数据就好:

if(jsonStr != null) {
                OutputStream os = conn.getOutputStream();
                os.write(jsonStr.getBytes());
                os.flush();
                os.close();
            }

相关文章

网友评论

      本文标题:Android Http postJson 中文乱码问题

      本文链接:https://www.haomeiwen.com/subject/kvftictx.html