Limity czasu oczekiwania i błędy

W tym dokumencie opisujemy, jak ustawiać limity czasu i obsługiwać błędy HTTP, które może otrzymać Twój kod podczas korzystania z biblioteki klienta interfejsu API Google dla języka Java.

Spis treści

ustawianie limitów czasu oczekiwania,

W poniższym przykładzie, który korzysta z interfejsu Google Analytics API, metody setConnectTimeout i setReadTimeout służą do ustawienia czasu oczekiwania na połączenie i odczytu na 3 minuty (w milisekundach) dla wszystkich żądań:

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

Obsługa odpowiedzi na błędy HTTP z interfejsów API Google

Gdy w odpowiedzi HTTP na interfejs API Google korzystający z formatu JSON zostanie wykryty kod stanu błędu, wygenerowane biblioteki zgłaszają wyjątek GoogleJsonResponseException.

Błędy mają format określony w sekcji Odpowiedzi na błędy.

Poniższy przykład pokazuje jeden ze sposobów radzenia sobie z tymi wyjątkami:

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