2013-06-20 26 views
3

我需要为远程主机上的某些图像指定特定Referer才能成功加载。 (例如,引用者需要为“http://www.example.com”,否则网络服务器将返回HTTP 403)如何在AQuery(AndroidQuery)中为异步图像加载指定HTTP标头?

AQuery在他们的wiki上有关于为ajax调用指定HTTP头的章节,但我似乎无法拼凑出如何为简单的异步图像调用执行此操作。

https://code.google.com/p/android-query/wiki/AsyncAPI#Http_Headers

例如,这里是用来在网络上显示图像的正常AQuery代码:

new AQuery(submodelPhoto).image(MyApplication.MEDIA_BASE_URL + getItem(position), true, true, 0, R.drawable.default_image); 

我怎么会指定HTTP引用这个电话?是否可以设置AQuery来为我的应用程序初始化期间的每个调用执行此操作? (因此,它不必重复每次我尝试加载图像)

回答

4

一些挖掘(多读BitmapAjaxCallback)后,我想出了这个解决方案:

BitmapAjaxCallback cb = new BitmapAjaxCallback(); 
cb.header("Referer", "http://www.example.com"); 
cb.url(MyApplication.MEDIA_BASE_URL + getItem(position)).fallback(R.drawable. default_image).memCache(true).fileCache(true); 
new AQuery(submodelPhoto).image(cb); 

看起来工作,希望我能找到一种方法来为每个请求设置AQuery的引用。