Java提交post请求中文乱码
时间: 2023-08-24 15:09:57 浏览: 97
java中form以post、get方式提交数据中文乱码问题总结
当我们使用Java的URLConnection或HttpURLConnection类发送POST请求时,如果请求参数中含有中文字符,可能会出现中文乱码的情况。这是因为默认情况下,Java使用ISO-8859-1字符集进行URL编码。
我们可以通过设置请求头来指定使用UTF-8字符集进行编码:
```
// 获取URLConnection对象,这里以HttpURLConnection为例
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求头
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
// 发送POST请求
connection.setRequestMethod("POST");
connection.setDoOutput(true);
OutputStream outputStream = connection.getOutputStream();
outputStream.write(params.getBytes("UTF-8"));
outputStream.flush();
outputStream.close();
// 获取响应结果
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
inputStream.close();
```
其中,params是请求参数,需要使用UTF-8字符集进行编码。
阅读全文