如何使用 Robospice(或类似的东西)+ OAuth 实现 android RESTful 客户端?

How to implement android RESTful client with Robospice (or something like this) + OAuth?

如何实现 Robospice(或类似的东西)+ OAuth?

也许有人可以分享 link 创建 RESTful android 客户的良好实践示例?我无法理解 RESTful 应用程序与 OAuth 的架构,它涵盖了 activity 生命周期的所有问题。 我当然知道 Virgil Dobjanschi "Google I/O 2010 - Android REST client applications"。使用一些像 Robospice 这样的库,它很容易实现。但是,如果应用程序使用 OAuth 进行服务授权怎么办?哪些 OAuth 库可能有用?在哪里存储访问令牌?如何同步执行一些请求?等...

我正在寻找完整的代码示例或至少有关设计和体系结构的建议。

视情况而定。您是在谈论 OAuth 1 还是 OAuth 2?对于前者,您可以使用 signpost. For the latter, you could use RoboSpice + Google Http Client + Google OAuth Client Library.

如果您使用 Google Http Client 作为您的网络库,您需要做的是基于 GoogleHttpClientSpiceService 创建您自己的 HttpClientSpiceService,您可以在 RoboSpice 中找到它。那么,你需要这样的东西:

public static HttpRequestFactory createRequestFactory() {
    HttpTransport httpTransport = AndroidHttp.newCompatibleTransport();
    return httpTransport.createRequestFactory(new HttpRequestInitializer() {
        @Override
        public void initialize(HttpRequest request) {
            // TODO: authorize or sign request...
            // Note that this will authorize/sign ALL the requests you make,
            // so you will probably want to improve on that.
        }
    });
}

剩下的完全由您决定,但最基本的是实现一种提供第三方登录的方法,获取所需的令牌并设置您选择的 OAuth 库。