このドキュメントでは、タイムアウトを設定し、コードによって発生する HTTP エラーを処理する方法について説明します。 Java 用 Google API クライアント ライブラリを使用する際に送信される可能性のあるエラー メッセージについて説明します。
目次
タイムアウトの設定
次の例では、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 エラー レスポンスを処理する
Google API への HTTP レスポンスでエラー ステータス コードが検出されると、 JSON 形式を使用している場合、生成されるライブラリは GoogleJsonResponseException をスローします。
エラーは、エラー レスポンスで指定された形式を使用します。
次の例は、これらの例外を処理する 1 つの方法を示しています。
Drive.Files.List listFiles = drive.files.list(); try { FileList response = listFiles.execute(); ... } catch (GoogleJsonResponseException e) { System.err.println(e.getDetails()); }