From 9cf8530b118a1261710f961ab87f00099e72ec40 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 04 Jun 2026 13:50:50 +0800
Subject: [PATCH] refactor(gateApi): 重构ApiClient创建逻辑以优化HTTP客户端配置
---
src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java | 27 +++++++++++++++++++++------
1 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
index e277173..d190e26 100644
--- a/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
+++ b/src/main/java/com/xcong/excoin/modules/gateApi/GateGridTradeService.java
@@ -11,6 +11,9 @@
import io.gate.gateapi.models.*;
import lombok.extern.slf4j.Slf4j;
+import okhttp3.ConnectionPool;
+import okhttp3.OkHttpClient;
+
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -19,6 +22,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
import com.xcong.excoin.modules.gateApi.wsHandler.handler.CandlestickChannelHandler;
import com.xcong.excoin.modules.gateApi.wsHandler.handler.PositionClosesChannelHandler;
@@ -149,11 +153,24 @@
public GateGridTradeService(GateConfig config) {
this.config = config;
- ApiClient apiClient = new ApiClient();
- apiClient.setBasePath(config.getRestBasePath());
- apiClient.setApiKeySecret(config.getApiKey(), config.getApiSecret());
+ ApiClient apiClient = createApiClient(config);
this.futuresApi = new FuturesApi(apiClient);
this.executor = new GateTradeExecutor(apiClient, config.getContract());
+ }
+
+ private static ApiClient createApiClient(GateConfig config) {
+ OkHttpClient httpClient = new OkHttpClient.Builder()
+ .connectTimeout(30, TimeUnit.SECONDS)
+ .readTimeout(60, TimeUnit.SECONDS)
+ .writeTimeout(20, TimeUnit.SECONDS)
+ .connectionPool(new ConnectionPool(5, 5, TimeUnit.SECONDS))
+ .retryOnConnectionFailure(true)
+ .build();
+ ApiClient client = new ApiClient();
+ client.setBasePath(config.getRestBasePath());
+ client.setApiKeySecret(config.getApiKey(), config.getApiSecret());
+ client.setHttpClient(httpClient);
+ return client;
}
// ---- 初始化 ----
@@ -174,9 +191,7 @@
*/
public void init() {
try {
- ApiClient detailClient = new ApiClient();
- detailClient.setBasePath(config.getRestBasePath());
- detailClient.setApiKeySecret(config.getApiKey(), config.getApiSecret());
+ ApiClient detailClient = createApiClient(config);
AccountDetail detail = new AccountApi(detailClient).getAccountDetail();
this.userId = detail.getUserId();
log.info("[Gate] 用户ID: {}", userId);
--
Gitblit v1.9.1