2016-03-24 2 views
1

Я пользуюсь volley, чтобы отправить JSONObject на мой сервер, а затем получить обратно ответ. Когда я запускаю свой код, в режиме отладки, я могу видеть, что parseNetworkReponse() из JsonObjectRequest вызывается, и я вижу, что библиотека смогла успешно проанализировать сетевой ответ без каких-либо ошибок. Однако deliverResponse() и последующие мои onResponse прослушиватели не вызываются. Я использую класс JsonObjectRequest для отправки и получения JsonObjects. Вот часть моего кода:Volley Слушатели не называются

Основное применение: метод

 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) { 

      } 
     }); 

VolleyRequest.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) { 
      //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 отправляет мой запрос на отправку и правильно разбирает ответ. Я вижу это с debugger, и мой сервер не бросает никаких ошибок. Он просто ничего не делает после разбора сетевого ответа

ответ

0

Вы говорите о слушателях в главном приложении? Вы никогда не называете их своим почтовым методом.

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

} 
+0

Упс, на самом деле у меня это есть. Я просто забыл c/p в выше. Но в любом случае у меня есть точки останова, установленные внутри public void onResponse (ответ JSONObject) { rqHandler.onResponse (response); // материал } И они никогда не срабатывают, что заставляет меня думать, что слушателя не называют. – KPERI

Смежные вопросы