2016-04-06 10 views
0

Ich verwende Volley, um die Daten zwischen Android-Gerät und Webserver zu übertragen.Android Volley POST Json zu Server

Ich habe ein Problem beim Senden einer Liste von Daten an den Server gefunden.

Zum Beispiel wird meine Klasse, die wie dieser Datensatz erzeugen:

{ 
    "1": { 
    "1_aID": "5", 
    "2_aID": "5", 
    "3_aID": "5", 
    "4_aID": "5" 
    }, 
    "2": { 
    "1_bID": "3", 
    "2_bID": "3", 
    "3_bID": "3" 
    }, 
    "3": { 
    "1_cID": "4" 
    } 
} 

Wie kann ich diese Daten an Server senden?

Ich habe einige Tutorial von Post-Daten zum Server gefunden. Es muss hashmap verwenden. Gibt es eine bessere Lösung für diesen Fall?

+1

Nun, in meinem Fall habe ich das Array String umgewandelt und dann schicken Die Daten zum Server Ich habe Daten wie diese ist meine Anwendung [{"color": "gelb"}, {"color": "grün"}] –

+0

Was ist das Problem, vor dem Sie stehen? –

+0

sind Sie JsonRequest Klasse? – Jois

Antwort

1
  1. eine Salve Anfrage wie unten Make Versuchen Sie, die Methode, wie POST/GET, Zuhörer url, response & error nimmt. Und zum Senden Ihrer Json Override getBody() Methode, in der die JSON übergeben, die Sie senden möchten.
  2. Machen Sie eine RequestQueue & fügen Sie die Anfrage dazu. Man könnte es von starten start() diese

Versuchen Aufruf:

// Instantiate the RequestQueue. 
    RequestQueue queue = Volley.newRequestQueue(this); 
    String url ="http://www.google.com"; 

    // Request a string response from the provided URL. 
    StringRequest stringRequest = new StringRequest(Request.Method.POST, url, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        // your response 

       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      // error 
     } 
    }){ 
     @Override 
     public byte[] getBody() throws AuthFailureError { 
      String your_string_json = ; // put your json 
      return your_string_json.getBytes(); 
     } 
    }; 
    // Add the request to the RequestQueue. 
    queue.add(stringRequest); 
    requestQueue.start(); 

Für weitere Informationen siehethis

+0

Wenn Sie PHP verwenden, vergessen Sie nicht, dass dieser JSON in 'php: // input' gespeichert wird und nicht in' $ _REQUEST'. Erhalte es wie '$ obj = json_decode (file_get_contents (" php: // input "));' –

1

diese

JSONObject rootObj = new JSONObject(); 
JSONObject oneObject = new JSONObject(); 
oneObject.put("1_aID","5"); 
... 
... 
JSONObject threeObject = new JSONObject(); 
oneObject.put("1_cID","4"); 
rootObj("1",oneObject); 
... 
... 
rootObj("3",threeObject); 

new JsonObjectRequest(Request.Method.POST, 
       url, 
       rootObj.toString(), 
responselistner, 
errorlistner);