我为这件事伤透了脑筋
我正在使用 Picasso 库从我的服务器加载和下载图像,但现在我想在下载请求中添加标头,但我似乎找不到一种方法。我想做的就是设置一个标题,例如:
setHeader("授权", "承载者" + token);
我在任何服务器请求中使用此标头,但找不到将其添加到 picasso 行的方法。
任何帮助将不胜感激,谢谢!
Picasso
uses OkHttp
as engine,或者可以配置 Picasso 使用它,并且由于您必须设置 http 请求的标头,因此您可以使用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());
}
}
然后将拦截器添加到 OkHttp 中,如下所示
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.interceptors().add(new BasicAuthInterceptor());
最后一步是配置Picasso
to use okHttpClient
。
毕加索的构建器为此提供了一种方法:
new Picasso.Builder(context).downloader(new OkHttpDownloader(okHttpClient)).build();
梯度依赖:
compile 'com.squareup.okhttp3:okhttp:3.0.1'
compile 'com.squareup.picasso:picasso:2.5.0'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)