超时和错误
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本文档介绍了如何设置超时时间以及如何处理因代码
使用 Java 版 Google API 客户端库时可能收到的提示。
目录
设置超时值
在下面的示例(使用了 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 错误响应
如果在对某个 Google API 的 HTTP 响应中检测到错误状态代码,
使用 JSON 格式,则生成的库会抛出 GoogleJsonResponseException。
错误使用错误响应中指定的格式。
以下示例展示了处理这些异常的一种方法:
Drive.Files.List listFiles = drive.files.list();
try {
FileList response = listFiles.execute();
...
} catch (GoogleJsonResponseException e) {
System.err.println(e.getDetails());
}
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-26。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-07-26。"],[[["\u003cp\u003eThis guide explains how to configure timeout settings for HTTP requests when using the Google API Client Library for Java, ensuring your application handles potential delays.\u003c/p\u003e\n"],["\u003cp\u003eIt demonstrates how to catch and manage HTTP error responses, specifically \u003ccode\u003eGoogleJsonResponseException\u003c/code\u003e, which occur when interacting with Google APIs.\u003c/p\u003e\n"],["\u003cp\u003eThe content provides code examples for setting connection and read timeouts and illustrates how to handle errors using try-catch blocks with \u003ccode\u003eGoogleJsonResponseException\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Timeouts and Errors\n\nThis document describes how to set timeouts and handle HTTP errors that your code\nmight receive when you use the Google API Client Library for Java.\n\nContents\n--------\n\nSetting timeouts\n----------------\n\nIn the following example, which uses the [Google Analytics API](https://developers.google.com/api-client-library/java/apis/analytics/v3), the\n`setConnectTimeout` and `setReadTimeout` methods are used to set the connect and\nread timeouts to three minutes (in milliseconds) for all requests: \n\n private HttpRequestInitializer setHttpTimeout(final HttpRequestInitializer requestInitializer) {\n return new HttpRequestInitializer() {\n @Override\n public void initialize(HttpRequest httpRequest) throws IOException {\n requestInitializer.initialize(httpRequest);\n httpRequest.setConnectTimeout(3 * 60000); // 3 minutes connect timeout\n httpRequest.setReadTimeout(3 * 60000); // 3 minutes read timeout\n }\n };\n\n GoogleCredential credential = ....\n\n final Analytics analytics = Analytics.builder(new NetHttpTransport(), jsonFactory, setHttpTimeout(credential)).build();\n\nHandling HTTP error responses from Google APIs\n----------------------------------------------\n\nWhen an error status code is detected in an HTTP response to a Google API that\nuses the JSON format, the generated libraries throw a [GoogleJsonResponseException](https://googleapis.dev/java/google-api-client/latest/com/google/api/client/googleapis/json/GoogleJsonResponseException.html).\n\nThe errors use the format specified in [Error responses](https://cloud.google.com/apis/design/errors).\n\nThe following example shows one way that you can handle these exceptions: \n\n Drive.Files.List listFiles = drive.files.list();\n try {\n FileList response = listFiles.execute();\n ...\n } catch (GoogleJsonResponseException e) {\n System.err.println(e.getDetails());\n }"]]