2

listView では、アダプターの getView メソッドで、NetworkImageView のおかげで項目ごとに画像を読み込むために、ListView 項目ごとに画像を要求する必要があります。問題は、ユーザーがサーバーから写真を取得できるようにするために、リクエストに認証ヘッダーを追加する必要があることです。実践できないいくつかの解決策を読みました。

前もって感謝します...

4

1 に答える 1

2

基本認証ヘッダーを ImageLoader に設定する方法を見つけました。そのリンクの同じトピックの答えを誤解していました。したがって、クレジットは実際の回答者に与えられます。とにかく、トリックは次のようにgetRequestQueueメソッドに HurlStack を追加することでした:

public RequestQueue getRequestQueue()
{
    if (mRequestQueue == null) {

        HurlStack stack = new HurlStack() {
            @Override
            public HttpResponse performRequest(Request<?> request, Map<String, String> headers)
                throws IOException, AuthFailureError {

                String auth = "Basic " + Base64.encodeToString((GlobalVariables.getInstance().getWS_KEY()+":").getBytes(),
                        Base64.NO_WRAP);
                headers.put("Authorization", auth);

                return super.performRequest(request, headers);
            }
        };
        mRequestQueue = Volley.newRequestQueue(getApplicationContext(),stack);
    }
    return mRequestQueue;
}

RequestQueueオブジェクトは Global クラスに配置され、シングルトン パターンが適用されます。つまり、 RequestQueueをリクエストするたびに、承認ヘッダーがそこに含まれます。それが役に立てば幸い !

于 2015-08-26T18:43:03.040 に答える