Java application/json post请求 utf-8编码
时间: 2023-09-30 14:08:31 浏览: 27
要使用Java发送带有UTF-8编码的application/json POST请求,可以按照以下步骤进行操作:
1. 导入必要的类和包:
```
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
```
2. 定义请求参数:
```
String url = "http://example.com/api/endpoint";
String json = "{\"key1\":\"value1\",\"key2\":\"value2\"}";
```
3. 设置请求头:
```
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json; charset=UTF-8");
```
4. 创建连接对象并设置请求方法、请求头和请求体:
```
URL object = new URL(url);
HttpURLConnection con = (HttpURLConnection) object.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestMethod("POST");
for (String key : headers.keySet()) {
con.setRequestProperty(key, headers.get(key));
}
byte[] postData = json.getBytes(StandardCharsets.UTF_8);
con.setRequestProperty("Content-Length", String.valueOf(postData.length));
con.getOutputStream().write(postData);
```
5. 获取响应:
```
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), StandardCharsets.UTF_8));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
```
完整代码如下:
```
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
public class JsonPostRequestExample {
public static void main(String[] args) throws Exception {
String url = "http://example.com/api/endpoint";
String json = "{\"key1\":\"value1\",\"key2\":\"value2\"}";
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json; charset=UTF-8");
URL object = new URL(url);
HttpURLConnection con = (HttpURLConnection) object.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestMethod("POST");
for (String key : headers.keySet()) {
con.setRequestProperty(key, headers.get(key));
}
byte[] postData = json.getBytes(StandardCharsets.UTF_8);
con.setRequestProperty("Content-Length", String.valueOf(postData.length));
con.getOutputStream().write(postData);
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), StandardCharsets.UTF_8));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println("Response Code: " + responseCode);
System.out.println("Response Body: " + response.toString());
}
}
```
相关推荐

















