Skip to content

Commit 745c379

Browse files
committed
add Timeout handle
1 parent b3e97c6 commit 745c379

3 files changed

Lines changed: 59 additions & 30 deletions

File tree

.idea/workspace.xml

Lines changed: 14 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/java/com/phantoms/phantomsbackend/common/utils/NapCatQQUtil.java

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.HashMap;
1313
import java.util.List;
1414
import java.util.Map;
15+
import java.util.concurrent.TimeUnit;
1516

1617
@Component
1718
public class NapCatQQUtil {
@@ -25,7 +26,11 @@ public class NapCatQQUtil {
2526
private String accessToken;
2627

2728
private static final ObjectMapper objectMapper = new ObjectMapper();
28-
private static final OkHttpClient client = new OkHttpClient();
29+
private static final OkHttpClient client = new OkHttpClient.Builder()
30+
.connectTimeout(10, TimeUnit.SECONDS)
31+
.writeTimeout(10, TimeUnit.SECONDS)
32+
.readTimeout(30, TimeUnit.SECONDS)
33+
.build();
2934

3035
/**
3136
* 通用请求方法
@@ -42,17 +47,38 @@ private String makeRequest(String endpoint, Map<String, Object> params) throws I
4247
.post(body)
4348
.build();
4449

45-
logger.debug("Sending request to NapCat: endpoint={}, params={}", endpoint, params);
50+
long startTime = System.currentTimeMillis();
51+
logger.info("开始调用 NapCat API: endpoint={}, url={}", endpoint, url);
52+
4653
try (Response response = client.newCall(request).execute()) {
54+
long duration = System.currentTimeMillis() - startTime;
55+
4756
if (!response.isSuccessful()) {
48-
logger.error("NapCat request failed: endpoint={}, code={}, message={}", endpoint, response.code(), response.message());
49-
throw new IOException("Unexpected code " + response);
57+
logger.error("NapCat请求失败: endpoint={}, code={}, message={}, duration={}ms",
58+
endpoint, response.code(), response.message(), duration);
59+
throw new IOException("NapCat API请求失败: " + response.code() + " - " + response.message());
5060
}
61+
5162
String responseBody = response.body().string();
52-
logger.debug("NapCat request successful: endpoint={}, response={}", endpoint, responseBody);
63+
logger.info("NapCat请求成功: endpoint={}, duration={}ms", endpoint, duration);
64+
logger.debug("NapCat响应内容: {}", responseBody);
5365
return responseBody;
66+
67+
} catch (java.net.SocketTimeoutException e) {
68+
long duration = System.currentTimeMillis() - startTime;
69+
logger.error("NapCat请求超时: endpoint={}, duration={}ms, error={}", endpoint, duration, e.getMessage());
70+
throw new IOException("NapCat API请求超时", e);
71+
72+
} catch (java.net.ConnectException e) {
73+
long duration = System.currentTimeMillis() - startTime;
74+
logger.error("NapCat连接失败: endpoint={}, url={}, duration={}ms, error={}",
75+
endpoint, url, duration, e.getMessage());
76+
throw new IOException("无法连接到NapCat服务: " + url, e);
77+
5478
} catch (IOException e) {
55-
logger.error("Error sending request to NapCat: endpoint={}, error={}", endpoint, e.getMessage(), e);
79+
long duration = System.currentTimeMillis() - startTime;
80+
logger.error("NapCat请求异常: endpoint={}, duration={}ms, error={}",
81+
endpoint, duration, e.getMessage(), e);
5682
throw e;
5783
}
5884
}

src/main/java/com/phantoms/phantomsbackend/common/utils/RisingStonesUtils.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,19 @@ public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {}
303303

304304
try (Response response = tempClient.newCall(request).execute()) {
305305
logger.info("Response code for doSignIn: {}", response.code());
306-
return JSONObject.parseObject(response.body().string());
306+
if (!response.isSuccessful()) {
307+
logger.error("doSignIn request failed: code={}, message={}", response.code(), response.message());
308+
throw new IOException("RisingStones API请求失败: " + response.code());
309+
}
310+
String responseBody = response.body().string();
311+
logger.debug("doSignIn response: {}", responseBody);
312+
return JSONObject.parseObject(responseBody);
313+
} catch (java.net.SocketTimeoutException e) {
314+
logger.error("doSignIn请求超时: {}", e.getMessage());
315+
throw new IOException("RisingStones API请求超时", e);
316+
} catch (java.net.ConnectException e) {
317+
logger.error("doSignIn连接失败: {}", e.getMessage());
318+
throw new IOException("无法连接到RisingStones服务", e);
307319
}
308320
}
309321

0 commit comments

Comments
 (0)