如何使用 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 库。
如何实现 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 库。