【发布时间】:2013-03-15 14:21:36
【问题描述】:
我有一个字符串问题,我使用下面的代码从 URL 接收 JSON 数据,代码工作正常,但问题是我没有得到完整的数据,只有一半的 JSON 值来了,我想要要知道这是否有原因,如果有意味着如何解决这个问题。 JSON字符串很大
DefaultHttpClient http_client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(urls[0]);
HttpResponse response = http_client.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
HttpEntity entity = response.getEntity();
InputStream in = entity.getContent();
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
int n = in.read(b);
while(n>0){
out.append(new String(b, 0, n));
n = in.read(b);
}
String resultdata = out.toString();
Log.d("Out data",resultdata);
【问题讨论】:
-
你怎么知道你只得到了一半的数据?
-
当我将 URL 放在网络浏览器中时,它会给出完整的数据,当我将它与 Android 输出进行比较时,andorid 只给出一半的数据(不像浏览器中那样完整)
-
你的 json 有多大...如果你的 json 太大,那么你可能会得到 OutOfMemoryError
-
你如何比较?使用 Log.d("Out data", resultdata) 打印出来的内容?
-
通常,logcat 的大小是最大条目是每行 4096 字节。所以如果你的resultdata大于4096,就会被截断。