標準リクエストを作成する

このレッスンでは、Volley がサポートする一般的なリクエスト タイプを使用する方法について説明します。

  • StringRequest。URL を指定し、レスポンスとして未加工文字列を受け取ります。例については、リクエスト キューをセットアップするをご覧ください。
  • JsonObjectRequestJsonArrayRequest(どちらも JsonRequest のサブクラス)。URL を指定し、レスポンスとしてそれぞれ JSON オブジェクトか JSON 配列を受け取ります。

想定されるレスポンスが上記のタイプのいずれかである場合、通常はカスタム リクエストを実装する必要はありません。このレッスンでは、このような標準リクエスト タイプの使用方法について説明します。独自のカスタム リクエストを実装する方法については、カスタム リクエストを実装するをご覧ください。

JSON をリクエストする

Volley には、JSON リクエスト向けに以下のクラスが用意されています。

  • JsonArrayRequest - 指定 URL の JSONArray レスポンス ボディを取得するためのリクエスト。
  • JsonObjectRequest - 指定 URL の JSONObject レスポンス ボディを取得するためのリクエスト。必要に応じて、JSONObject をリクエスト ボディの一部として渡すことができます。

どちらのクラスも、共通基本クラスの JsonRequest をベースとしています。他のタイプのリクエストの場合と同じ基本パターンに沿って使用します。例として、JSON フィードを取得し、UI 内のテキストとして表示するスニペットを以下に示します。

Kotlin

    val url = "http://my-json-feed"

    val jsonObjectRequest = JsonObjectRequest(Request.Method.GET, url, null,
            Response.Listener { response ->
                textView.text = "Response: %s".format(response.toString())
            },
            Response.ErrorListener { error ->
                // TODO: Handle error
            }
    )

    // Access the RequestQueue through your singleton class.
    MySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest)
    

Java

    String url = "http://my-json-feed";

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
            (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject response) {
            textView.setText("Response: " + response.toString());
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            // TODO: Handle error

        }
    });

    // Access the RequestQueue through your singleton class.
    MySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest);
    
Gson をベースとするカスタム JSON リクエストの実装例については、次のレッスンのカスタム リクエストを実装するをご覧ください。