对于Android,如何设置云端点请求的最大截止日期?
从Android应用程序向应用程序引擎服务发出对于Android,如何设置云端点请求的最大截止日期?,android,google-app-engine,google-cloud-endpoints,Android,Google App Engine,Google Cloud Endpoints,从Android应用程序向应用程序引擎服务发出ClientEndpointAPI请求时,如何设置execute()操作的截止日期/超时 我要找的东西是: Foo foo = endpoint.getSomething(id) .setDeadline(2000/*ms*/) .execute(); 我不确定是否有人能控制这一点。由于端点托管在App Engine环境中,因此任何App Engine HTTP请求的标准超时都应适用,即60秒 这是可能的。您只需要实现自己的HttpRequestI
ClientEndpoint
API请求时,如何设置execute()
操作的截止日期/超时
我要找的东西是:
Foo foo = endpoint.getSomething(id) .setDeadline(2000/*ms*/) .execute();
我不确定是否有人能控制这一点。由于端点托管在App Engine环境中,因此任何App Engine HTTP请求的标准超时都应适用,即60秒 这是可能的。您只需要实现自己的HttpRequestInitializer,在它的initialize方法中设置连接和读取超时。然后需要将此HttpRequestInitializer作为参数传递给endpoint builder构造函数。构建端点时,请在HttpRequestInitializer中指定连接和读取超时。例如,在这种情况下,分别为20秒和10秒
SomeEndpoint.Builder endpointBuilder = new SomeEndpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new JacksonFactory(), new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) {
httpRequest.setConnectTimeout(20 * 1000);
httpRequest.setReadTimeout(10 * 1000);
}
});
理论上,客户机可以选择提前中止请求。但我找不到任何方法来实现这一点,因此可能它根本不受支持。如果您正在端点生成器中使用GoogleCredential对象进行身份验证,则可以按照此链接中的说明设置自定义超时参数: