I send one ArrayList to my Laravel server, I have good response (200) and I received my list, but in my Android application the callback function of volley library OnResponse is never call.
JsonArrayRequest stringRequest = new JsonArrayRequest(url, jsonRequest,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, "dropTable");
dabAcces.dropTable();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (row > MAX_REGISTER_GPS_DATA) {
Log.d(TAG, "deleteOldestRecord");
dabAcces.deleteOldestRecord();
}
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
}
The function never enter to onResponse, can not display response.
This is my Android code with volley HTTP POST :
JSONArray jsonRequest = new JSONArray();
for(MyLocation myLocation : ListLocation){
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("serial", myLocation.serial);
jsonObject.put("longitude", myLocation.longitude);
jsonObject.put("latitude", myLocation.latitude);
jsonObject.put("altitude", myLocation.altitude);
jsonObject.put("accuracy", myLocation.accuracy);
jsonObject.put("detect_at", myLocation.date);
jsonRequest.put(jsonObject);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
JsonArrayRequest stringRequest = new JsonArrayRequest(url, jsonRequest,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, "dropTable");
Log.d(TAG, "response " + response );
dabAcces.dropTable();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "onErrorResponse" + error);
if (row > MAX_REGISTER_GPS_DATA) {
Log.d(TAG, "deleteOldestRecord");
dabAcces.deleteOldestRecord();
}
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
}
}
This is my Laravel Controller code :
public function store()
{
foreach ($input as $values){
$tracker = new Tracker;
$tracker->serial = $values["serial"];
$tracker->latitude = $values["latitude"];
$tracker->longitude = $values["longitude"];
$tracker->altitude = $values["altitude"];
$tracker->accuracy = $values["accuracy"];
$tracker->detect_at = $values["detect_at"];
$tracker->created_at = \Carbon\Carbon::now()->toDateTimeString();
$tracker->updated_at = \Carbon\Carbon::now()->toDateTimeString();
$tracker->save();
}
}
This is my log in Laravel, array sending by android application.
0 =>
array (
'detect_at' => '2015-08-14 06:14:11',
'longitude' => '-1.74099',
'latitude' => '48.0492',
'accuracy' => '39.695',
'serial' => '7447c0f2916a7159',
'altitude' => '0',
),
1 =>
array (
'detect_at' => '2015-08-14 06:14:15',
'longitude' => '-1.74095',
'latitude' => '48.0492',
'accuracy' => '42.057',
'serial' => '7447c0f2916a7159',
'altitude' => '0',
),
2 =>
array (
'detect_at' => '2015-08-14 06:14:17',
'longitude' => '-1.74092',
'latitude' => '48.0492',
'accuracy' => '43.351',
'serial' => '7447c0f2916a7159',
'altitude' => '0',
),
3 =>
array (
'detect_at' => '2015-08-14 06:18:59',
'longitude' => '-1.74095',
'latitude' => '48.0492',
'accuracy' => '41.781',
'serial' => '7447c0f2916a7159',
'altitude' => '0',
),
4 =>
array (
'detect_at' => '2015-08-14 06:19:01',
'longitude' => '-1.74093',
'latitude' => '48.0492',
'accuracy' => '42.812',
'serial' => '7447c0f2916a7159',
'altitude' => '0',
),
5 =>
array (
'detect_at' => '2015-08-14 06:19:03',
'longitude' => '-1.74093',
'latitude' => '48.0492',
'accuracy' => '42.812',
'serial' => '7447c0f2916a7159',
'altitude' => '0',
),
6 =>
array (
'detect_at' => '2015-08-14 06:19:05',
'longitude' => '-1.74093',
'latitude' => '48.0492',
'accuracy' => '42.948',
'serial' => '7447c0f2916a7159',
'altitude' => '0',
),
7 =>
array (
'detect_at' => '2015-08-14 06:20:19',
'longitude' => '-1.74095',
'latitude' => '48.0492',
'accuracy' => '41.865',
'serial' => '7447c0f2916a7159',
'altitude' => '0',
),