滑动 – 向请求添加标题

有没有一种方法来添加自定义标题请求下载图像时? 我可以在Glide中使用volley或okhttp

我尝试在okhttpclient中添加cookie到cookiemanager,但是没有帮助。 有没有一种方法来debugging在Glide中的请求响应?

最好的问候汤姆

Solutions Collecting From Web of "滑动 – 向请求添加标题"

从3.6.0开始 ,可以为每个请求设置自定义标题:

GlideUrl glideUrl = new GlideUrl("url", new LazyHeaders.Builder() .addHeader("key1", "value") .addHeader("key2", new LazyHeaderFactory() { @Override public String buildHeader() { String expensiveAuthHeader = computeExpensiveAuthHeader(); return expensiveAuthHeader; } }) .build()); Glide....load(glideUrl)....; 

如果你不能让Glide去做,你可以使用OkHttp拦截器 。

拦截器听起来是一个很好的select。 您可以将自己的OkHttp客户端实例传递给OkHttpUrlLoader.Factory,并使用Glide 注册 Factory。

如果你想要更多的控制,你也可以简单地分叉OkHttp ModelLoader和DataFetcher ,注册你的分叉的ModelLoader,并且可以直接访问OkHttp客户端。

 // make sure it's registered in AndroidManifest.xml as described at https://github.com/bumptech/glide/wiki/Configuration#including-a-glidemodule public class GlideSetup implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { /* no costumization */ } @Override public void registerComponents(Context context, Glide glide) { glide.register(String.class, InputStream.class, new HeaderedLoader.Factory()); } private static class HeaderedLoader extends BaseGlideUrlLoader<String> { public static final Headers HEADERS = new LazyHeaders.Builder() .addHeader("User-Agent", USER_AGENT) .addHeader("App-Agent", APP_AGENT) .build(); public HeaderedLoader(Context context) { super(context); } @Override protected String getUrl(String model, int width, int height) { return model; } @Override protected Headers getHeaders(String model, int width, int height) { return HEADERS; } public static class Factory implements ModelLoaderFactory<String, InputStream> { @Override public StreamModelLoader<String> build(Context context, GenericLoaderFactory factories) { return new HeaderedLoader(context); } @Override public void teardown() { /* nothing to free */ } } } 

}

接着

 ....load("http://....")....; 

请阅读这个线程: https : //github.com/bumptech/glide/issues/198

看起来好像它将在即将发布的版本(4.0)中实现。