Hier ist eine Methode in einer App habe ich das macht, was du versuchst zu tun. (Ich denke?)
Mein Problem war, dass ich mehrere Post-Parameter hatte, die ich senden wollte, aber einer von ihnen war ein Array.
Zum Beispiel:
http://www.yourDB.com/getData.php?param1=blah¶m2=blah¶m3=[ [array] ].
So ... um sicherzustellen, dass die PHP-Seite versteht, dass ich ein Array bin das Senden, füge ich Daten auf das Array wie folgt (man beachte den ‚[]‘ folgend der Param).
postParams.add(new String[]{"param3[]", itemName});
So ... der Server sieht folgendermaßen aus:
http://www.yourDB.com/getData.php?param1=blah¶m2=blah¶m3[]=item1¶m3[]=item2¶m3[]=item3...
Der Schlüssel zu verstehen, ist dieser Teil:
"@Override
public byte[] getBody() throws AuthFailureError {"
Der Trick ist, dass Sie eine Arraylist von String-Arrays senden in die Methode und überschreiben Sie den getBody() Teil wie folgt:
private void Url_2_Adapter(String url, final ArrayList<String[]> postParams) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// do something with response
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Log.i(TAG, "WE HAD ERROR " + error.toString());
try {
Toast.makeText(getActivity(), "Server says: Error code " + error.networkResponse.statusCode + "\nIf this continues, please report it! Thanks.", Toast.LENGTH_LONG).show();
}
catch (Exception e){
}
}
}) {
@Override
public byte[] getBody() throws AuthFailureError {
StringBuilder result = new StringBuilder();
boolean first = true;
for (String[] entry : postParams)
{
if (first) {
first = false;
} else {
result.append("&");
}
try {
result.append(URLEncoder.encode(entry[0], "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry[1], "UTF-8"));
} catch (UnsupportedEncodingException e) {
// this basically will never happen :)
}
}
return result.toString().getBytes();
}
};
Z_VolleySingleton.getInstance().getRequestQueue().add(stringRequest);
}
Wissen Sie, wie einzelne Daten aus dem Volley-Bibliothek Server zu übergeben, weil ich nicht auf der Volley Bibliothek gearbeitet hatte –
ich eine Antwort haben Dazu musste ich das auch tun .... bitte warten ... –
etwas guckt diese geschützte Map getParams() { ArrayList numbers = new ArrayList (); Nummern.add (Kode); Nummern.add ("1"); Zuordnung params = new HashMap (); params.put ("req", "req"); params.put ("msisdn", msisdn); params.put ("tujuan", Nomor); –