1111import com .netease .nim .im .server .sdk .core .metrics .Stats ;
1212import com .netease .nim .im .server .sdk .core .metrics .YunxinApiSdkMetricsCollector ;
1313import com .netease .nim .im .server .sdk .core .trace .ApiVersion ;
14+ import com .netease .nim .im .server .sdk .core .trace .TimeoutSetter ;
1415import com .netease .nim .im .server .sdk .core .trace .YunxinTraceId ;
1516import com .netease .nim .im .server .sdk .core .trace .TraceIdUtils ;
1617import com .netease .nim .im .server .sdk .core .utils .CheckSumBuilder ;
@@ -99,6 +100,9 @@ public HttpResponse execute(HttpMethod method, ContextType contextType, ApiVersi
99100 if (maxRetry > 128 ) {
100101 maxRetry = 128 ;
101102 }
103+ Long timeoutMillis = TimeoutSetter .getAndClear ();
104+ OkHttpClient client = client (timeoutMillis );
105+
102106 for (int i =0 ; i <=maxRetry ; i ++) {
103107 //request
104108 Request .Builder builder = new Request .Builder ();
@@ -118,7 +122,7 @@ public HttpResponse execute(HttpMethod method, ContextType contextType, ApiVersi
118122 logger .debug ("execute, endpoint = {}, method = {}, contextType = {}, apiVersion= {}, uri = {}, traceId = {}" ,
119123 endpoint , method , contextType , apiVersion , uri , traceId );
120124 }
121- try (Response response = okHttpClient .newCall (request ).execute ()) {
125+ try (Response response = client .newCall (request ).execute ()) {
122126 int code = response .code ();
123127 String string = response .body ().string ();
124128 if (code != 200 ) {
@@ -185,6 +189,17 @@ public HttpResponse execute(HttpMethod method, ContextType contextType, ApiVersi
185189 }
186190 }
187191
192+ private OkHttpClient client (Long timeoutMillis ) {
193+ if (timeoutMillis == null ) {
194+ return okHttpClient ;
195+ }
196+ return okHttpClient .newBuilder ()
197+ .connectTimeout (timeoutMillis , TimeUnit .MILLISECONDS )
198+ .readTimeout (timeoutMillis , TimeUnit .MILLISECONDS )
199+ .writeTimeout (timeoutMillis , TimeUnit .MILLISECONDS )
200+ .build ();
201+ }
202+
188203 @ Override
189204 public Stats getStats () {
190205 if (metricsCollector == null ) {
0 commit comments