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;
public class MyReq {
private HttpClient client;
private HttpRequest request;
private String user;
public HttpClient getClient() {
return client;
}
public void setClient(HttpClient client) {
this.client = client;
}
public HttpRequest getRequest() {
return request;
@ -33,8 +26,7 @@ public class MyReq {
this.user = user;
}
public MyReq(HttpClient client, HttpRequest request, String user) {
this.client = client;
public MyReq( HttpRequest request, String user) {
this.request = request;
this.user = user;
}

View File

@ -269,6 +269,8 @@ public class RyTask {
List<MyReq> req = new ArrayList<>();
HttpClient client = HttpClient.newHttpClient();
for (Apply a : applies) {
// 准备JSON负载
Map<String, Object> eventData = new HashMap<>();
@ -283,7 +285,6 @@ public class RyTask {
ObjectMapper mapper = new ObjectMapper();
String jsonPayload = mapper.writeValueAsString(eventData);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.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")
.POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
.build();
req.add(new MyReq(client, request, a.getWeverseEmail()));
req.add(new MyReq(request, a.getWeverseEmail()));
}
Calendar calendar = Calendar.getInstance();
@ -304,7 +305,7 @@ public class RyTask {
for (MyReq r : req) {
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 -> {
// 处理响应例如记录日志
log.info("Response received: " + response.statusCode());
@ -316,6 +317,7 @@ public class RyTask {
});
}
//status
Perform pStatus2 = new Perform();
pStatus2.setStatus("3");