Volley听众没有被召唤

时间:2016-03-24 07:56:24

标签: android android-volley

我正在使用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看到,我的服务器没有抛出任何错误。解析网络响应后它什么都不做

1 个答案:

答案 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);

}