在 Java 中执行两个不同的 POST 请求并行,你可以使用多线程。以下是一个简单的示例,使用 ExecutorService
来同时执行两个线程:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ParallelPostRequests {
public static void main(String[] args) {
// 创建线程池
ExecutorService executorService = Executors.newFixedThreadPool(2);
// 提交两个任务
executorService.submit(() -> sendPostRequest("http://example.com/api/endpoint1", "Payload for Endpoint 1"));
executorService.submit(() -> sendPostRequest("http://example.com/api/endpoint2", "Payload for Endpoint 2"));
// 关闭线程池
executorService.shutdown();
}
private static void sendPostRequest(String urlString, String payload) {
try {
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法为POST
connection.setRequestMethod("POST");
connection.setDoOutput(true);
// 发送请求
connection.getOutputStream().write(payload.getBytes());
// 读取响应
try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
// 断开连接
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个例子中,sendPostRequest
方法用于发送 POST 请求到指定的 URL,并传递指定的 payload。ExecutorService
用于创建一个固定大小的线程池,然后提交两个任务,每个任务对应一个不同的 POST 请求。这样可以确保两个请求在并行执行。