このトピックでは、Alibaba Cloud SDK V1.0 でネットワークタイムアウト期間を設定する方法について説明します。
説明
各 API オペレーションには一意のリクエストオブジェクトがあります。リクエストオブジェクトは、${API}${Request} の形式で名前が付けられます。たとえば、リクエストオブジェクトは DescribeRegionRequest です。
SDK V1.0 で設定されたタイムアウト期間は、次の降順で有効になります。リクエストオブジェクトに指定したタイムアウト期間、SDK クライアントに指定したタイムアウト期間、デフォルトのタイムアウト期間。接続リクエストのデフォルトのタイムアウト期間は 5 秒で、読み取りリクエストのデフォルトのタイムアウト期間は 10 秒です。
public static void main(String[] args) {
// SDK クライアントを初期化するときに指定したタイムアウト期間は、すべてのリクエストに使用されます。
HttpClientConfig clientConfig = HttpClientConfig.getDefault();
// 読み取りリクエストのデフォルトのタイムアウト期間は 10,000 ミリ秒です。値は、式 10 × 1000 = 10,000 を使用して計算されます。
clientConfig.setReadTimeoutMillis(readTimeoutMillis);
// 接続リクエストのデフォルトのタイムアウト期間は 5,000 ミリ秒です。値は、式 5 × 1000 = 5,000 を使用して計算されます。
clientConfig.setConnectionTimeoutMillis(connectionTimeoutMillis);
IClientProfile profile = DefaultProfile.getProfile(regionId, accesskeyId, accesskeySecret);
profile.setHttpClientConfig(clientConfig);
DefaultAcsClient client = new DefaultAcsClient(profile);
// リクエストオブジェクトに指定したタイムアウト期間は、現在のリクエストにのみ使用されます。
request.setSysReadTimeout(readTimeoutMillis);
request.setSysConnectTimeout(connectionTimeoutMillis);
}