对于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

从Android应用程序向应用程序引擎服务发出
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对象进行身份验证,则可以按照此链接中的说明设置自定义超时参数: