【问题标题】:android picasso library add token headerandroid 毕加索库添加令牌头
【发布时间】:2015-10-31 18:27:09
【问题描述】:

我一直在为这个问题而绞尽脑汁,

我正在使用 Picasso 库从我的服务器加载和下载图像,但现在我想在我的下载请求中添加一个标题,但我似乎找不到这样做的方法。我想要做的就是设置一个像这样的标题: setHeader("授权", "承载" + token);

我在任何服务器请求中都使用此标头,但找不到将其添加到 picasso 行的方法。

任何帮助将不胜感激,谢谢!

【问题讨论】:

    标签: android token picasso


    【解决方案1】:

    Picasso 使用 OkHttp 作为 engine ,或者可以配置 Picasso 使用它,并且由于您必须设置 http 请求的标头,因此可以使用 @987654323 @。例如。这是我处理基本身份验证的拦截器:

    private static class BasicAuthInterceptor implements Interceptor {
    
        @Override
        public Response intercept(Chain chain) throws IOException {
            final Request original = chain.request();
            final Request.Builder requestBuilder = original.newBuilder()
                    .header("Authorization", "Basic " + BASIC_AUTH_ENCODED)
            .method(original.method(), original.body());
            return chain.proceed(requestBuilder.build());
        }
    }
    

    然后你将拦截器添加到 OkHttp 中

     OkHttpClient okHttpClient = new OkHttpClient();
     okHttpClient.interceptors().add(new BasicAuthInterceptor());
    

    最后一步是将Picasso 配置为使用okHttpClient。 Picasso 的 builder 为它提供了一个方法:

    new Picasso.Builder(context).downloader(new OkHttpDownloader(okHttpClient)).build();   
    

    gradle 依赖:

    compile 'com.squareup.okhttp3:okhttp:3.0.1'
    compile 'com.squareup.picasso:picasso:2.5.0'
    

    【讨论】:

    • 你应该遵循这个方法。
    • 非常感谢! okhttpclient 的编译行是什么?
    • 我还看到我的 android studio 中没有提供 Interceptor,它是否与 OkHttpclient 一起提供?因为目前我无法实现它
    • 您可能缺少 gradle 中的依赖关系
    • 拦截器和httpclient的依赖是一样的吗?
    猜你喜欢
    • 2016-06-18
    • 1970-01-01
    • 2019-04-25
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多