Tempos limite e erros

Este documento descreve como definir tempos limite e lidar com erros de HTTP que seu código pode receber quando você usa a biblioteca de cliente das APIs do Google para Java.

Conteúdo

Definir tempos limites

No exemplo a seguir, que usa a API Google Analytics, os métodos setConnectTimeout e setReadTimeout são usados para definir os tempos limite de conexão e leitura como três minutos (em milissegundos) para todas as solicitações:

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

Como lidar com respostas de erro HTTP das APIs do Google

Quando um código de status de erro é detectado em uma resposta HTTP a uma API do Google que usa o formato JSON, as bibliotecas geradas geram uma GoogleJsonResponseException.

Os erros usam o formato especificado em Respostas de erro.

O exemplo a seguir mostra uma maneira de lidar com essas exceções:

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