Я попытался отправить массив на сервер залпом, но я получил ноль в моем методе ответа
Я делаю ArrayList с этим кодом:
final ArrayList<HashMap<String, String>> arrayList = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < questions.size(); i++) {
//addToServer(questions.get(i),questions.size());
HashMap<String, String> params = new HashMap<String, String>();
params.put("TestId", questions.get(i).getTestId() + "");
params.put("Number", questions.get(i).getNumber() + "");
arrayList.add(params);
}
listOfQ = new JSONArray(arrayList);
и отправьте его на сервер по этому коду:
public void addToServer2() {
if(requestQueue == null){
requestQueue = Volley.newRequestQueue(myContext);
}
request = new StringRequest(Request.Method.POST, ServiceApi.URL_send_question2, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
} catch (JSONException e) {
e.printStackTrace();
} catch (Exception e) {
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("test", listOfQ.toString());
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return super.getHeaders();
}
};
requestQueue.add(request);
}
и вот мой php-код, который возвращает массив и возвращает одно значение на сторону Android:
$arr = array();
$jsonarray = array();
$json = $_POST['test'];
$jsonarray = json_decode($json,true);
foreach((array) $jsonarray as $key){
$TestId = $key["TestId"];
$arr[] = array('id' => $TestId);
}
когда я отлаживаю свое приложение, оно показывает мне это в ответ: id: null