你可以使用 HttpURLConnection
类来模拟发送 POST 请求,并使用 JSON 解析库(例如 Jackson)来处理返回的 JSON 数据。以下是一个简单的示例:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class JsonRequestExample {
public static void main(String[] args) {
// 设置请求的 URL
String apiUrl = "https://example.com/api";
// 设置请求的 JSON 数据
String jsonInputString = "{\"key1\":\"value1\",\"key2\":\"value2\"}";
// 发送 POST 请求
String response = sendPostRequest(apiUrl, jsonInputString);
// 处理返回的 JSON 数据
if (response != null) {
System.out.println("Response: " + response);
// 使用 Jackson 解析 JSON 数据
ObjectMapper objectMapper = new ObjectMapper();
try {
JsonNode jsonNode = objectMapper.readTree(response);
// 对返回的 JSON 数据进行断言
if (jsonNode.has("result") && jsonNode.get("result").asText().equals("success")) {
System.out.println("Request was successful!");
} else {
System.out.println("Request failed!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 发送 POST 请求
private static String sendPostRequest(String apiUrl, String jsonInputString) {
try {
URL url = new URL(apiUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法为 POST
connection.setRequestMethod("POST");
// 设置请求头
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Accept", "application/json");
// 启用输入输出流
connection.setDoOutput(true);
// 写入 JSON 数据
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
// 获取返回的数据
try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"))) {
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
return response.toString();
}
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
上述代码假设你已经添加了 Jackson 库的依赖。在 Maven 项目中,你可以将以下依赖添加到你的 pom.xml
文件中:
请注意,以上代码仅作为示例,你可能需要根据实际的 API 结构和返回数据进行调整。