【发布时间】:2021-06-04 00:03:04
【问题描述】:
这听起来sooo微不足道,我使用 volley 请求两个 JSON 数据包,但第二个失败 - 如果我忽略第一个,一切正常。如果我多次重新查询 test1() 它甚至会失败。
private void test1()
{
JsonArrayRequest req =
new JsonArrayRequest(Request.Method.GET,
"https://www.impfterminservice.de/assets/static/its/vaccination-list.json",
null,
new Response.Listener<JSONArray>()
{
@Override
public void onResponse(JSONArray response)
{
test2();
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
test2();
}
}
);
BaseMainApp.getVolleyRequestQueue(m_Context).add(req);
}
private void test2()
{
JsonObjectRequest req =
new JsonObjectRequest(Request.Method.GET,
"https://002-iz.impfterminservice.de/rest/suche/termincheck?plz=78224&leistungsmerkmale=L922",
null,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
// does not arrive here
}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error)
{
// OUCH!!!
}
}
);
BaseMainApp.getVolleyRequestQueue(m_Context).add(req);
}
我认为可能是 cookie 缓存,但我尝试不使用缓存
Cache cache = new NoCache();
Network network = new BasicNetwork(new HurlStack());
m_VolleyRequestQueue = new RequestQueue(cache, network);
m_VolleyRequestQueue.start();
或者我试图删除缓存,...无济于事。我也试过延迟第二个查询,新建一个RequestQueue,……我真的需要重启应用了!
那里发生了什么?是什么导致服务器拒绝我的请求(并通过超时拒绝它)?
顺便说一句 - 如果第一个查询没有完成,第二个查询可以被多次调用,所以我猜第一个查询会以某种方式设置一些状态......不管它是什么?
【问题讨论】:
标签: android timeout android-volley