Вложенный метод запроса VOLLEY GET не дает правильных результатов
У меня два вложенных VOLLEY
GET
запрос. Первый запрос API дает мне поле id, которое я использую для вызова другой веб-службы. Проблема в том, как я получаю последовательность идентификаторов из первого запроса, при этом она не вызывает ту же последовательность для второго запроса, который использует поле идентификатора, возвращаемое первым запросом.
Это мое вложенное VOLLEY
GET
запрос.
private void getData() {
final JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, ApiUrls.RESERVATION, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
for (int i = 0; i < response.length(); i++) {
try {
JSONObject object = response.getJSONObject(i);
final Entry entry = newEntry();
String Id = object.getString("id");
entry.setId(Id);
ID_url = ApiUrls.DETAILS + Id + "/";
JsonObjectRequest foodieInfo = new JsonObjectRequest(Request.Method.GET, ID_url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
String firstName = response.getString("firstname");
entry.setName(firstName);
adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
String auth = "JWT " + myToken;
headers.put("Authorization", auth);
headers.put("Content-Type", "application/json");
return headers;
}
};
AppController.getInstance().addToRequestQueue(foodieInfo);
current.add(entry);
adapter = new ReservationAdapter(current, getActivity().getApplicationContext());
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
String auth = "JWT " + myToken;
headers.put("Authorization", auth);
headers.put("Content-Type", "application/json");
return headers;
}
@Override
protected Response<JSONArray> parseNetworkResponse(NetworkResponse response) {
int status=response.statusCode;
if(status==200){
}
return super.parseNetworkResponse(response);
}
};
AppController.getInstance().addToRequestQueue(request);
}
Идентификатор, который я получаю в первом запросе, такой же, он должен использоваться только в запросе Nested JSON GET. Но он использует другой идентификатор, возвращаемый первым запросом и вызывающий другой запрос с использованием этой последовательности. Как решить это?