2013-06-20 62 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的引用。