第一个完成后调用另一个Volley请求

时间:2015-07-09 19:34:39

标签: android json

例如,在我第一次请求我获取电影的ID时,在第二次截击请求中,我将使用电影的ID搜索有关电影的信息我收到了我的冷杉请求。有没有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:3)

排球库中有一个请求队列。您可以将多个请求添加到队列中。但在我看来,你应该同时获得所有数据。发送多个电影请求是不值得的(如果你没有请求大量数据)。但是如果你想要多次请求,你可以从onResponse界面回调。

<!-- Inside the class variable -->
RequestQueue queue;
<!-- Inside the onCreate or whatever you want -->
queue = Volley.newRequestQueue(context);

<!--1st request for movie -->
try {
        jsonObject.put("movieId",movieID);
        jsonObject.put("somedata",somedata);
        JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST,YOUR_IP_ADDRESS,jsonObject,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        // Call second request here and add it to queue again
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        error.printStackTrace();
                    }
                }) {
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("id","1");
                params.put("name", "myname");
                return params;
            };
        };
        queue.add(jsObjRequest);

    }catch (Exception ex){
        ex.printStackTrace();
    }