如何使用Google Drive Java SDK为Drive Service设置ReadTimeout和ConnectionTimeout

时间:2015-04-08 17:25:26

标签: java google-drive-api apache-httpclient-4.x

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),那么正确的方法是什么?

0 个答案:

没有答案