ระยะหมดเวลาและข้อผิดพลาด

เอกสารนี้จะอธิบายวิธีตั้งค่าการหมดเวลาและจัดการข้อผิดพลาด HTTP ที่โค้ดของคุณอาจได้รับเมื่อคุณใช้ไลบรารีของไคลเอ็นต์ Google API สำหรับ Java

เนื้อหา

การตั้งค่าการหมดเวลา

ในตัวอย่างต่อไปนี้ ซึ่งใช้ API ของ Google Analytics มีการใช้เมธอด 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());
}