【问题标题】:android: java.io.IOException: stream closedandroid:java.io.IOException:流关闭
【发布时间】:2013-05-01 04:33:40
【问题描述】:

我正在从服务器读取 xml 数据并对其进行解析,在此期间我收到以下异常。

05-07 12:37:31.904: W/System.err(2765): java.io.IOException: stream closed
05-07 12:37:31.907: W/System.err(2765):     at libcore.net.http.AbstractHttpInputStream.checkNotClosed(AbstractHttpInputStream.java:68)
05-07 12:37:31.908: W/System.err(2765):     at  at libcore.net.http.ChunkedInputStream.read(ChunkedInputStream.java:41)
05-07 12:37:31.908: W/System.err(2765):     at java.io.InputStreamReader.read(InputStreamReader.java:244)
05-07 12:37:31.908: W/System.err(2765):     at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1496)
05-07 12:37:31.909: W/System.err(2765):     at org.kxml2.io.KXmlParser.readName(KXmlParser.java:1543)
05-07 12:37:31.909: W/System.err(2765):     at org.kxml2.io.KXmlParser.parseStartTag(KXmlParser.java:1045)
05-07 12:37:31.909: W/System.err(2765):     at org.kxml2.io.KXmlParser.next(KXmlParser.java:369)
05-07 12:37:31.909: W/System.err(2765):     at org.kxml2.io.KXmlParser.next(KXmlParser.java:310)

我的代码是

**private static InputStream downloadUrl(String urlString) throws IOException {
        System.setProperty("http.keepAlive", "false");

**///// added after some search about this exception, but it didnt fix the issue fo**r me 

        URL url = new URL(urlString);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        //conn.setReadTimeout(10000 /* milliseconds */);
        conn.setConnectTimeout(15000 /* milliseconds */);
        conn.setRequestMethod("GET");
        conn.setDoInput(true);
        // Starts the query
        conn.connect();
        return conn.getInputStream();
    }**


XmlPullParser parser = getParser(in);
parser.require(XmlPullParser.START_TAG, ns, "response");

            while (parser.next() != XmlPullParser.END_TAG) {
........
}

xml文件前几条记录解析成功,然后异常来了

【问题讨论】:

  • 后端有问题?
  • 我能够读取 xml 的前几条记录。所以连接或权限没有问题。
  • 后端是您获取信息的服务器。也许是他关闭了连接
  • 您可能在任何地方重用 InputStream 对象..查看代码...

标签: android inputstream ioexception


【解决方案1】:

问题出在 XmlPullParser 上。下载大文件时有一些已知问题。我将 XML 解析更改为使用 DOM 。 http://developer.android.com/reference/javax/xml/parsers/package-summary.html 它奏效了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2019-09-03
    • 2020-05-14
    • 2016-11-24
    • 1970-01-01
    • 2015-06-24
    相关资源
    最近更新 更多