Есть ли способ узнать, что залп собирается разобрать? - PullRequest
0 голосов
/ 31 мая 2019

Я использую этот код для отправки запросов к серверу, он обычно работает нормально, но иногда он выдает некоторые ошибки с момента его разработки, однако, если он выдает сообщение об ошибке, он пытается проанализировать его в JsonObject и неизбежно потерпит неудачу.

final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
                (Request.Method.POST, baseUrl, postparams, new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.w("Response", response.toString());
                        callBackActivity.JsonCallback(response, "grupos");
                    }
                }, new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        callBackActivity.ErrorCallback(error, "grupos");

                    }
                });

Так есть ли способ узнать, каков необработанный ответ сервера, прежде чем анализировать его в JsonObject?

1 Ответ

2 голосов
/ 31 мая 2019

Вместо JSONObjecRequest попробуйте StringRequest, который даст ответ в виде строки. Зарегистрируйте этот ответ и посмотрите, что является причиной ошибки, затем вы можете вернуть ее обратно в JSONObjectRequest

StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        Log.v(response)
        try {
                JSONObject object = new JSONObject(response);       
            }
            } catch (Exception e) {
                Log.v("exception is " + e.toString());
            }        }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        //error log
    }
});
...