httpclient 复用
All checks were successful
continuous-integration/drone Build is passing

This commit is contained in:
liukang 2025-03-04 23:04:23 +08:00
parent 857f8ab8d3
commit ae05f59e73
2 changed files with 7 additions and 13 deletions

View File

@ -4,18 +4,11 @@ import java.net.http.HttpClient;
import java.net.http.HttpRequest; import java.net.http.HttpRequest;
public class MyReq { public class MyReq {
private HttpClient client;
private HttpRequest request; private HttpRequest request;
private String user; private String user;
public HttpClient getClient() {
return client;
}
public void setClient(HttpClient client) {
this.client = client;
}
public HttpRequest getRequest() { public HttpRequest getRequest() {
return request; return request;
@ -33,8 +26,7 @@ public class MyReq {
this.user = user; this.user = user;
} }
public MyReq(HttpClient client, HttpRequest request, String user) { public MyReq( HttpRequest request, String user) {
this.client = client;
this.request = request; this.request = request;
this.user = user; this.user = user;
} }

View File

@ -269,6 +269,8 @@ public class RyTask {
List<MyReq> req = new ArrayList<>(); List<MyReq> req = new ArrayList<>();
HttpClient client = HttpClient.newHttpClient();
for (Apply a : applies) { for (Apply a : applies) {
// 准备JSON负载 // 准备JSON负载
Map<String, Object> eventData = new HashMap<>(); Map<String, Object> eventData = new HashMap<>();
@ -283,7 +285,6 @@ public class RyTask {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
String jsonPayload = mapper.writeValueAsString(eventData); String jsonPayload = mapper.writeValueAsString(eventData);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder() HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url)) .uri(URI.create(url))
.header("Content-Type", "application/json") .header("Content-Type", "application/json")
@ -291,7 +292,7 @@ public class RyTask {
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36") .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
.POST(HttpRequest.BodyPublishers.ofString(jsonPayload)) .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
.build(); .build();
req.add(new MyReq(client, request, a.getWeverseEmail())); req.add(new MyReq(request, a.getWeverseEmail()));
} }
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
@ -304,7 +305,7 @@ public class RyTask {
for (MyReq r : req) { for (MyReq r : req) {
log.info("【用户】:" + r.getUser()); log.info("【用户】:" + r.getUser());
// 发起异步请求但不等待结果 // 发起异步请求但不等待结果
CompletableFuture<HttpResponse<String>> future2 = r.getClient().sendAsync(r.getRequest(), HttpResponse.BodyHandlers.ofString()); CompletableFuture<HttpResponse<String>> future2 = client.sendAsync(r.getRequest(), HttpResponse.BodyHandlers.ofString());
future2.thenAccept(response -> { future2.thenAccept(response -> {
// 处理响应例如记录日志 // 处理响应例如记录日志
log.info("Response received: " + response.statusCode()); log.info("Response received: " + response.statusCode());
@ -316,6 +317,7 @@ public class RyTask {
}); });
} }
//status //status
Perform pStatus2 = new Perform(); Perform pStatus2 = new Perform();
pStatus2.setStatus("3"); pStatus2.setStatus("3");