如何在Citrix ShareFile Java SDK中设置连接超时?
Citrix ShareFile Java SDK 没有直接提供顶层的超时配置接口,但可以通过自定义OkHttpClient实例来控制连接、读取、写入等超时时间,再将其传入SFApiClient的构造方法实现配置。
具体实现方式如下:
- 先创建配置好超时参数的OkHttpClient实例,根据业务需求调整超时时间值
- 将自定义的OkHttpClient传入SFApiClient的构造方法,替代默认客户端实现
修改后的代码示例:
try { String token = """ { "access_token" : "token", "refresh_token" : "refresh token", "token_type" : "Bearer", "appcp" : "App cp", "apicp" : "Api cp", "subdomain" : "sf222", "expires_in" : 3394757484 } """; // 配置自定义OkHttpClient,设置超时参数 OkHttpClient customHttpClient = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) // 连接超时:10秒 .readTimeout(30, TimeUnit.SECONDS) // 读取超时:30秒 .writeTimeout(30, TimeUnit.SECONDS) // 写入超时:30秒 .build(); // 将自定义客户端传入SFApiClient构造方法 ISFApiClient client = new SFApiClient(new SFOAuth2Token(token), customHttpClient); SFItem folder = client.items().get().execute(); } catch (SFInvalidStateException | SFJsonException | SFServerException | SFNotAuthorizedException | SFOAuthTokenRenewException | SFOtherException e) { fail(e); }
参数说明
connectTimeout:限制客户端与服务器建立TCP连接的最大时间,超时则抛出连接异常readTimeout:限制客户端等待服务器响应的最大时间,超时则抛出读取超时异常writeTimeout:限制客户端向服务器发送请求数据的最大时间,超时则抛出写入超时异常
你可以根据实际业务场景调整这些超时时间的数值。
内容的提问来源于stack exchange,提问作者Rahogata
相关产品推荐
相关产品推荐

