1212import java .util .HashMap ;
1313import java .util .List ;
1414import java .util .Map ;
15+ import java .util .concurrent .TimeUnit ;
1516
1617@ Component
1718public 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 }
0 commit comments