タイムアウトとエラー

このドキュメントでは、タイムアウトの設定方法と、Java 用 Google API クライアント ライブラリの使用時にコードが受け取る HTTP エラーの処理方法について説明します。

目次

タイムアウトの設定

次の例では、Google Analytics API を使って、setConnectTimeout メソッドと setReadTimeout メソッドを使用して、すべてのリクエストで接続タイムアウトと読み取りタイムアウトを 3 分(ミリ秒単位)に設定しています。

private HttpRequestInitializer setHttpTimeout(final HttpRequestInitializer requestInitializer) {
  return new HttpRequestInitializer() {
    @Override
    public void initialize(HttpRequest httpRequest) throws IOException {
      requestInitializer.initialize(httpRequest);
      httpRequest.setConnectTimeout(3 * 60000);  // 3 minutes connect timeout
      httpRequest.setReadTimeout(3 * 60000);  // 3 minutes read timeout
    }
  };

GoogleCredential credential = ....

final Analytics analytics = Analytics.builder(new NetHttpTransport(), jsonFactory, setHttpTimeout(credential)).build();

Google API からの HTTP エラー レスポンスの処理

JSON 形式を使用する Google API への HTTP レスポンスでエラー ステータス コードが検出されると、生成されたライブラリは GoogleJsonResponseException をスローします。

エラーは、エラー レスポンスで指定されている形式を使用します。

次の例は、これらの例外を処理する 1 つの方法を示しています。

Drive.Files.List listFiles = drive.files.list();
try {
  FileList response = listFiles.execute();
  ...
} catch (GoogleJsonResponseException e) {
  System.err.println(e.getDetails());
}