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上的,但是还有很多其他的。