Timeout ed errori

Questo documento descrive come impostare i timeout e gestire gli errori HTTP che il codice potrebbe ricevere quando utilizzi la libreria client delle API di Google per Java.

Sommario

Impostazione dei timeout

Nell'esempio seguente, che utilizza l'API Google Analytics, i metodi setConnectTimeout e setReadTimeout vengono utilizzati per impostare i timeout di connessione e lettura su tre minuti (in millisecondi) per tutte le richieste:

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

Gestione delle risposte di errore HTTP delle API di Google

Quando viene rilevato un codice di stato di errore in una risposta HTTP a un'API di Google che utilizza il formato JSON, le librerie generate generano un'eccezione GoogleJsonResponseException.

Gli errori utilizzano il formato specificato in Risposte di errore.

L'esempio seguente mostra un modo per gestire queste eccezioni:

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