如何在 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