Java使用HttpURLConnection发起带中文HTTP请求乱码
字数统计:165 阅读时长 ≈ 1分钟under 默认分类 tag Published on November 18th , 2021 at 10:57 pm
前言
使用Bark实现iOS消息推送时,遇到中文乱码问题,如下所示:
解决方法:
把URL中的中文部分(不包括英文与'/')使用URLEncoder.encode进行编码成utf-8
格式:
URLEncoder.encode("中文", "utf-8");
完整代码
1. URL拼接
注意只能把中文部分进行encode
// 中文Hint
String hint = student.getS_name() + "同学,你已晚归!";
// 进行编码
hint = URLEncoder.encode(hint , "utf-8");
// URL
String urlTmp = "http://api.day.app/"+ barkId + "/" ;
// 拼接
String url = urlTmp + hint;
2、在Http Utils里
public static String doGet(String httpurl) {
HttpURLConnection connection = null;
InputStream is = null;
BufferedReader br = null;
String result = null;// 返回结果字符串
try {
// 创建远程url连接对象
URL url = new URL(httpurl);
// 通过远程url连接对象打开一个连接,强转成httpURLConnection类
connection = (HttpURLConnection) url.openConnection();
// 设置连接方式:get
connection.setRequestMethod("GET");
connection.setRequestProperty("Content-type", "text/html");
connection.setRequestProperty("Accept-Charset", "utf-8");
connection.setRequestProperty("contentType", "utf-8");
// 设置连接主机服务器的超时时间:15000毫秒
connection.setConnectTimeout(15000);
// 设置读取远程返回的数据时间:60000毫秒
connection.setReadTimeout(60000);
// 发送请求
connection.connect();
}
}
本文由simyng创作,
采用知识共享署名4.0 国际许可协议进行许可,转载前请务必署名
文章最后更新时间为:November 18th , 2021 at 03:06 pm