我使用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。
可能是什么原因?当响应很大时,响应是以块的形式发送的吗? 如果是这样,如何加入它们来解析完整的响应?
答案 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);
}