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

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

Содержание

Установка таймаутов

В следующем примере, в котором используется API Google Analytics , методы 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()); }