2

ImageView を拡張する便利な com.android.volley.NetworkImageView ウィジェットがあります。Google のプレゼンテーションによると、それを使用するには、レイアウト xml ファイルでこれだけが必要です。
<com.android.volley.toolbox.NetworkImageView

そして、これはActivityソースコードにあります:
mImageView.setImageUrl(imageUrl, mImageLoader);

しかし、Cookie やパラメーターをリクエストに入れる必要がある場合はどうすればよいでしょうか? この質問を見たことがありますが、これにはボレーライブラリを変更する必要があると思います。もっと簡単な方法はありますか?

4

5 に答える 5

2

ここでは、Cookie や GET/POST パラメーターの使用など、Volley の使用に関するさまざまな簡単な例を含むプロジェクトを見つけることができます。

于 2013-05-30T13:05:17.903 に答える
1

xmlレイアウトファイルをに設定する必要があります

<com.android.volley.toolbox.NetworkImageView...

クラス名に「toolbox」がありません。

于 2013-07-23T22:50:58.687 に答える
1

Ogre_BGR によって提案された解決策は、彼が Apache の HTTP クライアントを使用しているため、適切なものではありません。また、volley は API 8 以下でのみ Apache の HTTP クライアントを使用します。これは、URLConnection よりもバグが少ないためです。しかし、Gingerbread (2.3) 以降、URLConnection の使用が推奨されており、Android のチームが維持および更新しているものです。

より良い解決策は、リンクを提供したものだと思います。Volley を変更するのではなく、Volley が既に使用している Cookie に Cookie を追加/保存するだけです。また、API リクエストをすばやく簡単に呼び出すために、Volley の *Request クラスの一部を拡張するのが一般的です (こちらを参照)。Ogre_BGR のソリューションは、Volley の HttpStack を完全に変更します。

于 2013-06-14T08:11:21.503 に答える
0

Cookie に関しては、URLConnetion (API > 8 での Volley のデフォルトの使用例) を使い続けるために私がしたことは、HurlStack (URLConnection を使用した HTTP クライアントの Volley の実装) を拡張するカスタム クラスを実装し、createConnection( URL url) は、すべてのリクエストの前に接続を取得するために使用される方法です。ユーザー エージェント (HurlStack を使用してデフォルトで送信されるものはありません) と Cookie (HurlStack では自動的に管理されません) を追加しました。

クラスのコードは次のとおりです。

public class CustomHurlStack extends HurlStack {

    public CustomHurlStack() {
        super();
    }

    @Override
    protected HttpURLConnection createConnection(URL url) throws IOException {
        // Create a connection with custom attributes
        HttpURLConnection conn = super.createConnection(url);
        conn.addRequestProperty("User-Agent", "myUserAgent/1.0");
        conn.addRequestProperty("cookie", "myCookie");

        return conn; 
    }
}

これは実行可能な解決策であるはずです。なぜ Volley にそのような構成可能なクラスが含まれていないのかはわかりませんが、上記のように、わずか 1 分ほどで独自のクラスを作成できます。

于 2013-08-13T09:13:04.510 に答える
0
private static RequestQueue mQueue;

String userAgent = "volley/0";
HttpStack stack = new HttpClientStack(AndroidHttpClient.newInstance(userAgent));
mQueue = Volley.newRequestQueue(this, stack, 100 * 1024 * 1024);
于 2015-07-13T04:59:43.563 に答える