我必须向Android应用程序的API发出多个请求,我遇到以下问题: 我有一个项目列表,我必须为每个项目提出请求,以便获取一些数据并在应用程序中显示它。当我的列表大小为1时(如果我只有一个项目),该应用程序可以正常工作,但如果我有更多,我将数据混合,一个项目具有其他类似的值。
我正在使用JsonObjectRequest和Volley。我使用回调接口将请求数据发送回活动。我认为这可能是一个同步问题,但我不确定,我有点沮丧。我已经尝试了一切!
请求代码:
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, urlMarket, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject singleResult;
singleResult = response.getJSONArray("result").getJSONObject(0);
coin.setHigh(singleResult.getDouble("High"));
coin.setLow(singleResult.getDouble("Low"));
coin.setLast(singleResult.getDouble("Last"));
coin.setVolInBtc(singleResult.getDouble("BaseVolume"));
coin.setBid(singleResult.getDouble("Bid"));
coin.setAsk(singleResult.getDouble("Ask"));
coin.setPrevDay(singleResult.getString("PrevDay"));
callback.onSuccess(coin);
} catch (Exception e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
requestQueue.add(request);
任何形式的帮助都将受到赞赏!!
PD:如果有更好的方法而不是JsonObjectRequest,请告诉我!
答案 0 :(得分:1)
考虑这两个选项中的任何一个:
扩展接受id / token字段的JSONObjectRequest,该字段作为Success / Error回调的一部分返回。
在进行API调用之前,请使用final字段作为标识符。假设您正在循环中进行这些调用,则可以从匿名回调中引用此最终字段以标识特定Stock。例如,您可以使用ISIN,数据库ID或股票代码来标识响应。