我一直在打破我的大脑,
我正在使用Picasso库从我的服务器加载和下载图像,但现在我想在我的下载请求中添加一个标题,我似乎无法找到一种方法。我想做的就是设置一个标题: setHeader("授权","承载" +令牌);
我在任何服务器请求中使用此标头,但无法找到将其添加到毕加索线的方法。
任何帮助将不胜感激,谢谢!
答案 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'