改造添加带有令牌和ID的标头 [英] Retrofit add header with token and id

查看:110
本文介绍了改造添加带有令牌和ID的标头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在获取经过身份验证的用户时遇到问题.在此之前,我得到了令牌和用户ID.现在,我需要使用访问令牌和ID从服务器获取用户. 我有标头格式

I have a problem with getting authenticated user. Before it I got token and user id. Now i need to get user from server using access token and id. I have header format

现在,我正在尝试使用拦截器添加带有用户令牌和ID的标头.

Now I'am trying to add header with user token and id using interceptor.

我的代码:

Interceptor interceptor = new Interceptor() {
        @Override
        public okhttp3.Response intercept(Chain chain) throws IOException {
            Request newRequest = chain.request().newBuilder()
                    .addHeader("Accept", "application/json")
                    .addHeader("authorization", token) <-??
                    .addHeader("driver_id", id) <-??
                    .build();
            return chain.proceed(newRequest);
        }
    };
    OkHttpClient.Builder okHttpBuilder = new OkHttpClient.Builder();
    okHttpBuilder.addInterceptor(interceptor);
    OkHttpClient okHttpClient = okHttpBuilder.build();

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .client(okHttpClient)
            .build();

接口:

@GET("driver/v1/driver")
Call<Driver> getAuthorizedDriver();

不同的变体抛出401错误,不知道该怎么办 日志:

Different variants throws 401 error, don't know what to do Log:

I/Response code: 401
I/Response message: Unauthorized`

推荐答案

我明白了. 它必须看起来像:

I got it. It's must look like:

@GET("driver/v1/driver")
Call<Driver> getAuthorizedDriver(@Header("authorization") String auth);

然后验证:

Call<Driver> call = apiInterface.getAuthorizedDriver("Token token=" + token + ", driver_id=" + id);

这篇关于改造添加带有令牌和ID的标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆