3

リモート ホスト上の特定のイメージを正常にロードするには、特定の Referer を指定する必要があります。(たとえば、リファラーは " http://www.example.com " である必要があります。そうでない場合、Web サーバーは HTTP 403 を返します)

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

1 に答える 1

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 のリファラーを設定するアプローチを見つけられたらいいのにと思います。

于 2013-06-20T17:22:55.033 に答える