Тайм-ауты и ошибки

В этом документе описано, как задавать тайм-ауты и обрабатывать ошибки HTTP, которые могут возникать в коде при использовании клиентской библиотеки API Google для Java.

Содержание

Настройка тайм-аутов

В следующем примере, в котором используется Google Analytics API, методы setConnectTimeout и setReadTimeout используются для установки времени ожидания подключения и чтения в три минуты (в миллисекундах) для всех запросов:

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();

Обработка ответов с ошибками HTTP от API Google

Если в HTTP-ответе на запрос к API Google, использующему формат JSON, обнаруживается код статуса ошибки, сгенерированные библиотеки выдают исключение GoogleJsonResponseException.

Ошибки используют формат, указанный в разделе Сообщения об ошибках.

В примере ниже показано, как можно обрабатывать эти исключения.

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