Вложенный запрос на залп

#java #android-volley

Вопрос:

Я хочу позвонить по второму запросу, когда получу первый. Я написал код, но в getquantity() только добавляет запрос. когда весь ответ будет получен в первом методе, придет ответ getquantity (). Я хочу сопоставить выходные данные, но я не могу этого сделать.

как получить быстрый ответ в getquantity()?

  private void getServerData() {
        if (requestQueue == null) {
            requestQueue = Volley.newRequestQueue(this);
        }
        String zebpay_url = "https://www.zebapi.com/pro/v1/market/";

        JsonArrayRequest jsonArrayRequest1 = new JsonArrayRequest(
                Request.Method.GET,
                zebpay_url,
                null,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response)  {
                        try {
                             Request.Priority mPriority = Request.Priority.LOW;
                                for (int i = 0; i < response.length(); i  ) {
                                    JSONObject innerJObject = response.getJSONObject(i); //1INCH-INR
                                    for (int j = 0; j < pairINR.length; j  ) {
                                    if (innerJObject.getString("pair").equals(pairINR[j])) {

                                        ZEB_C_USDT_BUY=0;
                                        ZEB_C_USDT_SELL=0;
                                        ZEB_A_INR_BUY = Double.parseDouble(innerJObject.getString("buy"));
                                        ZEB_A_INR_SELL = Double.parseDouble(innerJObject.getString("sell"));

                                        if (ZEB_C_USDT_BUY == 0 || ZEB_C_USDT_SELL == 0) {
                                            Log.d("EMPTYDATA", "");
                                        } else {
                                            getquantity(pairINR[j], j);
                                        }
                                    }
                                    if (innerJObject.getString("pair").equals(pairUSDT[j])) {

                                        ZEB_C_USDT_BUY=0;
                                        ZEB_C_USDT_SELL=0;
                                        ZEB_C_USDT_BUY = Double.parseDouble(innerJObject.getString("buy"));
                                        ZEB_C_USDT_SELL = Double.parseDouble(innerJObject.getString("sell"));

                                        if (ZEB_A_INR_BUY == 0 || ZEB_A_INR_SELL == 0) {
                                            Log.d("EMPTYDATA", "");
                                        } else {
                                            getquantity(pairINR[j], j);
                                        }
                                    }
                                }
                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this, "Error: "   error, Toast.LENGTH_LONG).show();
                    }
                }
        ) ;
        requestQueue.add(jsonArrayRequest1);


    }

    private void getquantity(String pairString, int index) {

        if (requestQueue1 == null) {
            requestQueue1 = Volley.newRequestQueue(this);
        }

        String zebpay_book_url = "https://www.zebapi.com/pro/v1/market/"   pairString   "/book?converted=1";

        JsonObjectRequest jsonObjectRequest1 = new JsonObjectRequest(
                Request.Method.GET,
                zebpay_book_url,
                null,
                new Response.Listener<JSONObject>() {
                    @RequiresApi(api = Build.VERSION_CODES.N)
                    @Override
                    public void onResponse(JSONObject response) {

                        try {
                            Iterator<String> keys = response.keys();
                            while (keys.hasNext()) {
                                String key = keys.next();
                                if (key.equals("asks")) {
                                    Quantity_Buy = 0;
                                    JSONArray innerobject = response.getJSONArray(key);
                                    JSONObject innerobject1 = innerobject.getJSONObject(0);
                                    Quantity_Buy = Double.parseDouble(innerobject1.getString("amount"));
                                }
                                if (key.equals("bids")) {
                                    Quantity_Sell = 0;
                                    JSONArray innerobject = response.getJSONArray(key);
                                    JSONObject innerobject1 = innerobject.getJSONObject(0);
                                    Quantity_Sell = Double.parseDouble(innerobject1.getString("amount"));
                                }
                            }
                            //updateData1(ZEB_A_INR_BUY, ZEB_A_INR_SELL, ZEB_B_INR_BUY, ZEB_B_INR_SELL, ZEB_C_USDT_BUY, ZEB_C_USDT_SELL, Fees, Quantity_Buy, Quantity_Sell, index);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        if (error != null) {

                        }
                    }
                }
        );

        requestQueue1.add(jsonObjectRequest1);
    }
 

Спасибо.