我正在使用volley
向我的服务器发送JSONObject
,然后收到回复。当我运行我的代码时,在调试模式下,我可以看到parseNetworkReponse()
的{{1}}被调用,我可以看到该库能够成功解析网络响应而不会抛出任何错误。但是,JsonObjectRequest
以及随后的deliverResponse()
侦听器未被调用。我使用onResponse
课程发布和接收JsonObjectRequest
。这是我的代码的一部分:
主要应用:
JsonObjects
VolleyRequest.post方法:
JSONObject jso = new JSONObject();
jso.put("mac", "XX");
VolleyRequest.post("http://something", jso, applicationCntxt, new IResponseHandler() {
@Override
public void onResponse(JSONObject response) {
}
@Override
public void onError(VolleyError error) {
}
});
任何人都知道导致响应侦听器无法被调用的原因是什么?我知道 public static void post(String url, JSONObject payload, Context context, final IResponseHandler rqHandler)
{
Response.Listener<JSONObject> listener = new Response.Listener<JSONObject>() {
public void onResponse(JSONObject response) {
//stuff
}
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
//stuff
}
};
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST, url, payload, listener, errorListener);
jsObjRequest.setRetryPolicy(new DefaultRetryPolicy(10000, 0, 1f));
VolleyRequestQueue.getInstance(context).addToRequestQueue(jsObjRequest);
}
正在发送我的帖子请求并正确解析响应。我可以从Volley
看到,我的服务器没有抛出任何错误。解析网络响应后它什么都不做
答案 0 :(得分:0)
您是在谈论主应用程序中的听众吗?你永远不会在post方法中调用它们。
public static void post(String url, JSONObject payload, Context context, final IResponseHandler rqHandler)
{
Response.Listener<JSONObject> listener = new Response.Listener<JSONObject>() {
public void onResponse(JSONObject response) {
rqHandler.onResponse(response) ;
//stuff
}
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
rqHandler.onError(error) ;
//stuff
}
};
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST, url, payload, listener, errorListener);
jsObjRequest.setRetryPolicy(new DefaultRetryPolicy(10000, 0, 1f));
VolleyRequestQueue.getInstance(context).addToRequestQueue(jsObjRequest);
}