〇Volleyとは
Volley公式ページ:
Google 製の Android アプリ用のネットワークライブラリ。キャッシュや高速化、データ取得やキャンセル処理などの課題を効率的に解決するライブラリ。
〇導入
app/build.gradle
1 2 3 4 |
dependencies { ~ compile 'com.android.volley:volley:1.0.0' ←追加 } |
〇使い方
参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
private RequestQueue mQueue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 情報元URL String url = "URL"; mQueue = Volley.newRequestQueue(this); mQueue.add(new JsonObjectRequest(Method.GET, url, null, ←Method.POSTでPOST送信 new Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { // List、Viewへの追加等 } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // エラー処理 error.networkResponseで確認 // エラー表示など } })); } |
〇リクエストヘッダに追加情報を付与する方法
参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
JsonObjectRequest json = new JsonObjectRequest(Method.GET, URL_API, null, new Listener<JSONObject>(){ public void onResponse(JSONObject result) { } }, new Response.ErrorListener() { public void onErrorResponse(VolleyError error) { } }){ @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> headers = super.getHeaders(); ←リクエストヘッダを呼び出し // Add BASIC AUTH HEADER Map<String, String> newHeaders = new HashMap<String, String>(); newHeaders.putAll(headers); ←現状のヘッダを格納 newHeaders.put("Authorization", "yubayuba"); ←追加情報を書き込む return newHeaders; } }; |
〇レスポンスヘッダから追加情報を読み取る方法
参考①
参考②
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, URL_API, null, new Response.Listener<JSONObject>() { public void onResponse(JSONObject result) { } }, new Response.ErrorListener() { public void onErrorResponse(VolleyError error) { } }){ @Override protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { Log.d(TAG,response.headers.get("yuba")); ←追加情報を取得 return super.parseNetworkResponse(response); } }; |