未收到完整的JSON响应

时间:2016-02-22 05:12:15

标签: android json

我使用Volley向API发出GET请求:

    StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.i("RESPONSE",response);

            //this method parses the JSON response and fills it into a custom ArrayList
            parseResponse(response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.i("Sorry", "unable to get the response!");
        }
    });

预期的JSON对象响应很大(可能高达500 KB)。 我无法在日志中看到完整的回复。仅显示前50行左右。我还获得了BasicNetwork.logSlowRequests信息:

  

BasicNetwork.logSlowRequests:请求的HTTP响应=&lt; []

表示请求超过3000毫秒。

尝试过的事情

我已在手机的开发者选项中将记录器缓冲区大小增加到1M。

可能是什么原因?当响应很大时,响应是以块的形式发送的吗? 如果是这样,如何加入它们来解析完整的响应?

1 个答案:

答案 0 :(得分:2)

日志没有显示完整的字符串,如果它非常大,请尝试写入磁盘上的文件并检查它是否应该完整。

您也可以使用此方法打印完整的日志:

public static void longInfo(String str) {
    if(str.length() > 4000) {
        Log.i(TAG, str.substring(0, 4000));
        longInfo(str.substring(4000));
    } else
        Log.i(TAG, str);
}