如果令牌不存在,则应首先对其进行检索,然后将其添加到该请求中并缓存以备将来使用.通过API调用检索令牌.
我尝试执行同步请求,但是会产生android.os.networkonmainthreadException.使用in_progress标志实现它看起来并不好.
解决方法:
您已经可以使用RequestInterceptor完成此操作的“拦截”部分.只需使用RestAdapter.Builder.setRequestInterceptor().
不过,最好从RequestInterceptor外部的API中检索令牌,因为这并不是要这样做.第一次调用后,您可以在RequestInterceptor.intercept()中的请求中的任何位置添加令牌.
像这样:
Builder builder = new RestAdapter.Builder()
//Set Endpoint URL, Retrofit class... etc
.setRequestInterceptor(new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
String authToken = getAuthToken(); //Not included here, retrieve the token.
request.addHeader("Authorization", "Bearer " + authToken);
}
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。