gpt4 book ai didi

android - 使用 Retrofit 阻塞请求拦截器?

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:51 26 4
gpt4 key购买 nike

有没有好的方法来实现“阻塞式”请求拦截器?

主要思想是应拦截所有请求并添加额外的 header - token

如果 token 尚不存在,则应首先检索它,然后将其添加到该请求并缓存以备将来使用。 token 通过 API 调用检索。

我尝试执行同步请求,但是,这会产生 android.os.NetworkOnMainThreadException。并使用 in_progress 标志实现它看起来不太好。

最佳答案

您已经可以使用 RequestInterceptor 完成“拦截”部分.只需使用 RestAdapter.Builder.setRequestInterceptor()

不过,从 RequestInterceptor 外部的 API 检索 token 是一个更好的主意,因为它并不打算这样做。在第一次调用之后,您可以在 RequestInterceptor.intercept() 中的请求中的任何位置添加 token 。

像这样:

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);
}
);

关于android - 使用 Retrofit 阻塞请求拦截器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22016657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com