HttpURLConnection以post传数据时中文乱码的一个解决方法

今天在测试自己写的接口时,后台使用HttpURLConnection,以post方式向服务器的接口传数据。但服务器得到的中文是乱码。度娘一早上没找到合适的解决方法。中午一觉醒来随便把

out.writeBytes(string);  改成      out.write(string.getBytes());   就解决了。(简直是天了噜)。

改了之后的部分代码如下:

try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
/**/
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setUseCaches(false);

connection.setRequestProperty("Content-type", "application/json;charset=UTF-8"); 
connection.setConnectTimeout(30000);
connection.setReadTimeout(30000);
connection.connect();

DataOutputStream out = new DataOutputStream(connection.getOutputStream());


JSONObject obj = new JSONObject();
Map map = new HashMap();
map.put("name", "张三");
map.put("gender", "男");

obj.putAll(map);

String string = obj.toString();

out.write(string.getBytes());

//out.writeBytes(string);

out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}

 然后在这篇文章中找到了原因: http://blog.youkuaiyun.com/ananyangyang/article/details/8036800


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值