Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

With Android, how do I set the maximum deadline for a Cloud Endpoint request?

When making a ClientEndpoint API request from an Android app to an App-Engine service, how do I set a deadline/timeout for the execute() action?

I'm looking for something like:

Foo foo = endpoint.getSomething(id) .setDeadline(2000/*ms*/) .execute();
like image 313
Brian White Avatar asked Feb 14 '23 11:02

Brian White


1 Answers

When building the endpoint, specify a connect and read timeout in HttpRequestInitializer. For example, in this case 20 and 10 secs respectively.

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);
        }
    });
like image 182
Rori Stumpf Avatar answered May 08 '23 22:05

Rori Stumpf