android picasso库添加标记头

时间:2015-10-31 18:27:09

标签: android token picasso

我一直在打破我的大脑,

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

我在任何服务器请求中使用此标头,但无法找到将其添加到毕加索线的方法。

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

1 个答案:

答案 0 :(得分:1)

Picasso使用OkHttp作为引擎,或者可以将Picasso配置为使用它,因为您必须设置http请求的标头,您可以使用Interceptor。例如。这是我的Interceptor来处理基本身份验证:

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

然后将Interceptor添加到OkHttp,如

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

最后一步是将Picasso配置为使用okHttpClient。 毕加索的建造者为它提供了一种方法:

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'