2016-05-31 14 views
-3

ich wie etwas senden müssen senden:Wie JSONObject mit android Volley

{ 
"username": "username", 
"password": "password", 
"email": "[email protected]", 
"usuario": { 
    "municipio": 1, 
    "estado": 1 
    } 
} 

Wie kann ich das tun? Wenn ich mit diesem Code versuchen, funktioniert es nicht:

StringRequest stringRequest = new StringRequest(Request.Method.POST, url, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         Toast.makeText(getApplicationContext(), R.string.AlertaExito, Toast.LENGTH_LONG).show(); 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(getApplicationContext(), error.toString(), Toast.LENGTH_LONG).show(); 
        } 
       }) { 
      @Override 
      protected Map<String, String> getParams() { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("username", txtusuario.getText().toString()); 
       params.put("password", txtpassword.getText().toString()); 
       params.put("email", txtemail.getText().toString()); 
       params.put("estado", txtestado.getText().toString()); 
       params.put("municipio", txtmunicipio.getText().toString()); 

       return params; 
      } 

Ich glaube, ich sollte eine jsonobject schaffen, aber ich weiß nicht, wie das zu tun.

Antwort

0

Wenn Ihr Problem mit Volley selbst ist, können Sie sein Tutorial https://developer.android.com/training/volley/request.html#request-json (verwenden Sie das Singleton aus der vorherigen Lektion https://developer.android.com/training/volley/requestqueue.html#singleton).

Dort werden sie eine GET-Anfrage machen, aber Sie können mit Request.Method.POST für eine POST ändern, wird die Signatur für die JsonObjectRequest JsonObjectRequest(int method, String url, JSONObject jsonRequest, Listener<JSONObject> listener, ErrorListener errorListener) hier https://android.googlesource.com/platform/frameworks/volley/+/1b4858087f25a8033c5136a96b750752b87e128c/src/com/android/volley/toolbox/JsonObjectRequest.java

gefunden ist, wenn Ihr Problem mit Ihrem json ist, dann merkt nur, dass JsonObjectRequest eine braucht JSONObject, so dass Sie nicht einfach einen String senden können, können Sie die JSONObject-Dokumentation (https://developer.android.com/reference/org/json/JSONObject.html) überprüfen und den json über seine Methoden neu erstellen, oder er hat auch einen Konstruktor, der einen String json encoded verwendet.

+0

Ich weiß nicht, wie ich mein JSON-Objekt für die Übergabe in getParams() -Methode erstellen –