本文件說明如何設定逾時,以及處理使用 Java 適用的 Google API 用戶端程式庫時,程式碼可能會收到的 HTTP 錯誤。
目錄
設定逾時
以下範例使用 Google Analytics API,其中 setConnectTimeout
和 setReadTimeout
方法會將所有要求的連線和讀取逾時設定為三分鐘 (毫秒):
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();
處理來自 Google API 的 HTTP 錯誤回應
在對使用 JSON 格式的 Google API 的 HTTP 回應中偵測到錯誤狀態碼時,產生的程式庫會擲回 GoogleJsonResponseException。
這些錯誤會使用錯誤回應中指定的格式。
以下範例說明處理這些例外狀況的一種方式:
Drive.Files.List listFiles = drive.files.list();
try {
FileList response = listFiles.execute();
...
} catch (GoogleJsonResponseException e) {
System.err.println(e.getDetails());
}