Вложенный метод запроса VOLLEY GET не дает правильных результатов

У меня два вложенных VOLLEYGET запрос. Первый запрос API дает мне поле id, которое я использую для вызова другой веб-службы. Проблема в том, как я получаю последовательность идентификаторов из первого запроса, при этом она не вызывает ту же последовательность для второго запроса, который использует поле идентификатора, возвращаемое первым запросом.
Это мое вложенное VOLLEYGET запрос.

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. Но он использует другой идентификатор, возвращаемый первым запросом и вызывающий другой запрос с использованием этой последовательности. Как решить это?

0 ответов

Другие вопросы по тегам