我正在使用 OAuth,每次发出请求时都需要将 OAuth 令牌放入标头中。我看到@Header
注释,但是有没有办法让它参数化,以便我可以在运行时传入?
这是概念
@Header({Authorization:'OAuth {var}', api_version={var} })
你能在运行时传递它们吗?
@GET("/users")
void getUsers(
@Header("Authorization") String auth,
@Header("X-Api-Version") String version,
Callback<User> callback
)
除了使用 @Header 参数之外,我宁愿使用 RequestInterceptor 来更新您的所有请求而不更改您的界面。使用类似的东西:
RestAdapter.Builder builder = new RestAdapter.Builder()
.setRequestInterceptor(new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("Accept", "application/json;versions=1");
if (isUserLoggedIn()) {
request.addHeader("Authorization", getToken());
}
}
});
p/s : 如果你使用的是 Retrofit2,你应该使用Interceptor
代替RequestInterceptor
Since RequestInterceptor
在 Retrofit 2.0 中不再可用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)