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