gpt4 book ai didi

java - 使用 Google API Client Library for Java 更改批量 HTTP 请求的读取超时

转载 作者:搜寻专家 更新时间:2023-10-31 20:01:25 26 4
gpt4 key购买 nike

我正在批量请求将成员添加到组中。为此,我使用 OAuth2.0 并获取类类型 Credential 的对象。执行时,batch.execute() 抛出一个

java.net.SocketTimeoutException : Read timed out

要更改超时限制,这是我找到的解决方案: GoogleApps client giving SocketTimeOutException only

但我无法更改正在创建的 Credential 对象的超时时间。

Credential credential = new AuthorizationCodeInstalledApp(
flow, new LocalServerReceiver()).authorize("user");

注意:凭据实现 HttpRequestInitializer。

提前致谢!

最佳答案

好久不见!有一个单独的 HttpRequestInitializer 对象用于批处理 HTTP 和对 Google 的原子 HTTP 请求。我之前更改了原子请求的 HttpRequestInitializer 对象(期望同样影响批处理请求)如下:

new Directory.Builder(
HTTP_TRANSPORT, JSON_FACTORY,new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest httpRequest) throws IOException {
credential.initialize(httpRequest);
httpRequest.setConnectTimeout(3); // 3 minutes connect timeout
httpRequest.setReadTimeout(3); // 3 minutes read timeout
System.out.println("Hello"); // Just to track when a http request is made.

}
}).setApplicationName(APPLICATION_NAME).build();

这导致原子请求的设置读取超时。使用 batch.execute() 发送的批处理请求仍然具有默认读取超时。为了对批处理请求进行同样的更改,我在我的 BatchRequest 初始化中进行了更改:

BatchRequest batch = service.batch(new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest request) throws IOException {
credential.initialize(request);
request.setConnectTimeout(10 * 60000);
request.setReadTimeout(10 * 60000);
System.out.println(request.getReadTimeout() + 2); //Just to track when a batch http request is made.
}
});

关于java - 使用 Google API Client Library for Java 更改批量 HTTP 请求的读取超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31312692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com