שגיאות זמן קצוב ושגיאות

במאמר הזה נסביר איך להגדיר זמן קצוב לתפוגה ולטפל בשגיאות HTTP שהקוד עשוי לקבל כשמשתמשים בספריית הלקוח של Google API עבור Java.

תוכן עניינים

הגדרת זמן קצוב לתפוגה

בדוגמה הבאה, שמשתמשת ב-Google Analytics API, נעשה שימוש בשיטות setConnectTimeout ו-setReadTimeout כדי להגדיר את הזמן הקצוב לתפוגה של חיבור וקריאה ל-3 דקות (באלפיות השנייה) לכל הבקשות:

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 מ-Google APIs

כשהמערכת מזהה קוד סטטוס שגיאה בתגובת HTTP ל-Google API שמשתמש בפורמט JSON, הספריות שנוצרות יוצרות GoogleJsonResponseException.

השגיאות יהיו בפורמט שצוין בתגובות שגיאה.

הדוגמה הבאה מראה דרך אחת שבה אפשר לטפל בחריגות האלה:

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