如何在 Retrofit 2.0 中使用 Authorization Token token=A-123456789qwertyuio12 Header
How to use Authorization Token token=A-123456789qwertyuio12 Header in Retrofit 2.0
我正在尝试使用具有该授权 header 的 api,我可以在 Postman 中获得包含所有数据的 200 响应,但无法使其在改造中工作
你可以试试下面这样的东西,只是一个粗略的例子
@GET("your server url goes here")
Call<Your_Model_Class> getServerData(@Header("Authorization") String token);
将您的令牌传递给 getServerData
方法。
可能您需要使用 OkHttp 拦截器添加 Token
。
OkHttpClient client = new OkHttpClient.Builder()
.addNetworkInterceptor(mTokenInterceptor)
.build();
然后将其添加到 Retrofit
:
Retrofit retrofit = new Retrofit.Builder()
.client(client)
.baseUrl(base_url)
.build();
mTokenInterceptor
:
Interceptor mTokenInterceptor = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (mToken != null) {
Request.Builder requestBuilder = request.newBuilder()
.addHeader("Authorization", mToken);
Request newRequest = requestBuilder.build();
return chain.proceed(newRequest);
}
return chain.proceed(request);
}
};
当你得到 Token
时,只需分配 mToken
,
我正在尝试使用具有该授权 header 的 api,我可以在 Postman 中获得包含所有数据的 200 响应,但无法使其在改造中工作
你可以试试下面这样的东西,只是一个粗略的例子
@GET("your server url goes here")
Call<Your_Model_Class> getServerData(@Header("Authorization") String token);
将您的令牌传递给 getServerData
方法。
可能您需要使用 OkHttp 拦截器添加 Token
。
OkHttpClient client = new OkHttpClient.Builder()
.addNetworkInterceptor(mTokenInterceptor)
.build();
然后将其添加到 Retrofit
:
Retrofit retrofit = new Retrofit.Builder()
.client(client)
.baseUrl(base_url)
.build();
mTokenInterceptor
:
Interceptor mTokenInterceptor = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (mToken != null) {
Request.Builder requestBuilder = request.newBuilder()
.addHeader("Authorization", mToken);
Request newRequest = requestBuilder.build();
return chain.proceed(newRequest);
}
return chain.proceed(request);
}
};
当你得到 Token
时,只需分配 mToken
,