问题描述
这听起来很简单,我使用 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",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,...我真的需要重新启动应用程序!
那里发生了什么?是什么导致服务器拒绝我的请求(并超时拒绝)?
顺便说一句 - 如果第一个查询没有完成,第二个查询可以被多次调用,所以我猜第一个以某种方式设置了一些状态......不管它是什么?
解决方法
解决方案:服务器故意做的……!