2016-07-10 74 views
0

volley JsonArrayRequestを使用してパラメータを使用してGETリクエストを行いたいとします。私はパラメータを持つgetParam()メソッドを呼び出していますが、呼び出しはしていません。Android Volley getParam()メソッドがJsonArrayRequestを呼び出さないGETメソッド

JsonArrayRequest jreq = new JsonArrayRequest(Request.Method.GET,"http://api.openchargemap.io/v2/poi/",null, 
      new Response.Listener<JSONArray>() { 

       @Override 
       public void onResponse(JSONArray response) { 

        Log.d("TAG", "" + response.toString()); 
        if(response.toString().length() > 1) { 
         parseJson(response.toString()); 
        } 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.d("TAG",""+error.toString()); 
     } 
    }) 

    { 
     @Override 
     protected Map<String, String> getParams() { 
      Map<String,String> map = new HashMap<String,String>(); 
      map.put("output","json"); 
      map.put("countrycode","US"); 
      map.put("latitude","32.57933044"); 
      map.put("longitude","-110.8514633"); 
      map.put("maxresults","100"); 
      map.put("distance","10"); 
      map.put("distanceunit","KM"); 
      map.put("compact","true"); 
      map.put("verbose","false"); 
      return map; 
     } 
    }; 

    RequestQueue requestQueue = Volley.newRequestQueue(this); 
    requestQueue.add(jreq); 

ボレーがgetParam()を呼び出さないため、適切な応答が得られません。 私はスタックのオーバーフローで多くを検索しましたが、正解を得られず、ボレーのドキュメントは良くありません。それで私はここに私の質問をしています。ありがとう。

+0

私はあなたのコードを試して、それは私にUnknownHostExceptionを与えています。 URLが正しいと確信していますか? –

+0

はい。私は応答を得ていますが、適切な応答は得られません。 –

答えて

2

としては、ここを参照してください:

getParams():

がPOSTまたはPUTリクエストのために使用されるパラメータのMapを返します。 throw *これらの値を提供するには、認証が必要な場合がありますので、{@link AuthFailureError} 代わりにURL

Uri.Builderを使用する方法

でクエリパラメータを送信するためgetParamsメソッドをオーバーライドするのRequest.Method.GET使用Uri.Builderためそう...

、:

Uri.Builder urlBuilder = new Uri.Builder(); 
      builder.scheme("http") 
        .authority("api.openchargemap.io") 
        .appendPath("v2") 
        .appendPath("poi") 
        .appendQueryParameter("output",json) 
        ...// add other paramters in same way 
        ; 

ビルダーから、最終的なURLを取得:

URL finalURL = new URL(urlBuilder.build().toString()); 

finalURL URLを使用してGETリクエストを作成します。

+0

お返事ありがとうございます。それは今働いている。 –

関連する問題