2016-07-10 9 views
0

Ich möchte mit Parametern tun GET Anfrage Volley JsonArrayRequest verwenden. Ich habe getParam() -Methode mit Parametern aufrufen, aber es ruft nicht auf.Android Volley getParam() -Methode nicht für JsonArrayRequest GET-Methode aufrufen

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); 

Ich bekomme keine richtige Antwort, weil Volley GetParam() nicht aufrufen. Ich habe viel auf Stack-Überlauf gesucht, aber nicht richtige Antwort und Volley-Dokumentation ist nicht gut. Deshalb stelle ich meine Frage hier. Vielen Dank.

+0

Ich habe versucht Ihren Code und es gibt mir die UnknownHostException. Bist du sicher, dass die URL korrekt ist? –

+0

ja. sogar ich bekomme Antwort, aber keine richtige Antwort. –

Antwort

2

Wie sehen hier:

getParams():

eine Karte von Parametern Kosten für eine POST oder PUT-Anforderung verwendet werden. Kann Wurf * {@link AuthFailureError} als Authentifizierung kann diesen Wert zu schaffen, erforderlich.

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 
        ; 

Get final url von Baumeister: ...

Also, für Request.Method.GET Verwendung Uri.Builder anstelle der überwiegenden getParams Methode für mit URL-Suchparameter Senden

Wie Uri.Builder verwenden

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

Verwenden finalURL URL für GET-Anfrage zu machen.

+0

danke für die antwort. Es funktioniert jetzt. –

Verwandte Themen