Android BufferedReader 没有读取整个响应
Android BufferedReader does not read the whole response
我在读取 ULR 响应时遇到问题。在 Android 上,它只读取大约一半的响应。
如果我在普通 Java 项目中使用相同的代码,一切正常。
try {
String _output = null;
URL url = new URL("http://example.com");
BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuilder everything = new StringBuilder();
String line;
while ((line = buffer.readLine()) != null) {
everything.append(line);
}
_output = everything.toString();
buffer.close();
System.out.print(_output);
} catch (IOException e) {
e.printStackTrace();
}
你怎么知道这只是响应的一半?如果您依赖使用 System.out.println()
打印的内容,那么您应该知道 Logcat 有一个限制,它不能打印超过 4,000 个字符。之后的任何内容都会被截断。要检查您有多少响应,您可以先打印 everything.length()
,看看您是否处于那种情况。
你可以参考SO上的,但是还有很多其他的。
我在读取 ULR 响应时遇到问题。在 Android 上,它只读取大约一半的响应。
如果我在普通 Java 项目中使用相同的代码,一切正常。
try {
String _output = null;
URL url = new URL("http://example.com");
BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuilder everything = new StringBuilder();
String line;
while ((line = buffer.readLine()) != null) {
everything.append(line);
}
_output = everything.toString();
buffer.close();
System.out.print(_output);
} catch (IOException e) {
e.printStackTrace();
}
你怎么知道这只是响应的一半?如果您依赖使用 System.out.println()
打印的内容,那么您应该知道 Logcat 有一个限制,它不能打印超过 4,000 个字符。之后的任何内容都会被截断。要检查您有多少响应,您可以先打印 everything.length()
,看看您是否处于那种情况。
你可以参考SO上的