逾時與錯誤

本文說明如何設定逾時及處理使用 Java 適用的 Google API 用戶端程式庫時,程式碼可能會收到的 HTTP 錯誤。

目錄

設定逾時

在下方範例使用 Google Analytics API,系統會使用 setConnectTimeoutsetReadTimeout 方法,將所有要求的連線和讀取逾時設定為三分鐘 (以毫秒為單位):

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

錯誤會使用「錯誤回應」中指定的格式。

以下範例說明處理這些例外狀況的方法:

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