超时和错误

本文档介绍了如何设置超时以及处理您在使用适用于 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());
}