2017-05-03 7 views
-1

ich Benutzer Android Volley Bibliothek bin versucht, die folgende cURL Anfrage zu emulieren:Volley GET Anfrage mit json Daten

curl -H "Content-Type: application/json" -X GET -d '{"password":"password"}' https://0.0.0.0:5000/staging/api/v2.0/supporter/name=Steven 

, die wie erwartet funktioniert, aber der folgende Code für Android funktioniert nicht:

public void getSupporterByName(String name, String password, @NonNull final APIRequestCallback<Supporter> callback){ 
    try { 
     JSONObject job = new JSONObject(); 
     job.put("password", password); 

     JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, getAPIEndpoint() + "supporter/name=" + name, job, new Response.Listener<JSONObject>() { 
      @Override public void onResponse(JSONObject response) { 
       callback.onSuccess(parseSupporter(response.toString())); 
      } 
     }, new Response.ErrorListener() { 
      @Override public void onErrorResponse(VolleyError error) { 
       callback.onFailure(error); 
      } 
     }) { 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       Map<String, String> currs = super.getHeaders(); 
       Map<String, String> map = currs != null ? new HashMap<>(super.getHeaders()) : new HashMap<String, String>(); 
       map.put("Content-Type", "application/json"); 
       return map; 
      } 
     }; 
     requestQueue.add(req); 
    } catch (Exception ex) { 
     callback.onFailure(ex); 
    } 
} 

Ich bekomme immer eine 400 ungültige Anfrage von der API, die ich weiß, ist, weil die API das JSONObject nicht sieht, das gesendet wird und deshalb nicht in der Lage ist, das Passwort zu validieren. Gibt es eine Möglichkeit, eine GET Anfrage mit einem JSON-Körper mit Volley zu machen?

Antwort