例如,在我第一次请求我获取电影的ID时,在第二次截击请求中,我将使用电影的ID搜索有关电影的信息我收到了我的冷杉请求。有没有更好的方法来做到这一点?
答案 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();
}