SocketTimeoutException: Read timed out
以及ConnectException: Connection timed out
我遇到了很多问题。首先,我对这个错误实际上对驱动器有什么影响感到有点困惑 - 即did the request fail, or is it ambiguous?
此外,我没有看到修改底层HttpClient超时设置的方法。我从an answer on this question得到了如何增加底层HttpClient设置的提示。
我正在使用具有域范围访问权限的云服务。以下是我如何设置它:
Drive service = new Drive.Builder(httpTransport, jsonFactory, credential)
.setHttpRequestInitializer(new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) throws IOException {
credential.initialize(httpRequest);
httpRequest.setConnectTimeout(180 * 1000); // 3 minutes
httpRequest.setReadTimeout(180 * 1000); // 3 minutes
}
}).setApplicationName("MyApp").build();
经过测试,我仅在130秒后(不是我在Drive Service初始化中设置的180秒)仍然获得ConnectException: Connection timed out
。
这是设置此值的正确方法吗?如果是这样,可能是另一个问题?如果这是设置这些值的错误方法(底层HttpClient的ConnectionTimeout和SocketTimeout),那么正确的方法是什么?