在Android中从HTTP检索XML /流的最佳实践

时间:2010-05-04 17:20:04

标签: java xml android http parsing

从Android中的HTTP资源解析XML的最佳做法是什么?我一直在使用HttpURLConnection来检索一个InputStream,用BufferedInputStream包装它,然后用SAX来解析缓冲的流。虽然我收到了SocketTimeoutException的错误报告:操作超时或一般解析错误,但大多数情况下它都有效。我相信这是由于InputStream。

  1. 使用HttpClient而不是HttpURLConnection有帮助吗?如果是,为什么?
  2. 是否应将流输出到文件,解析文件而不是流?
  3. 非常感谢任何输入或指示。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

我最近做了这个,所以我没有很多经验,但我使用了HTTPCLient。 HTTPClient比原始URLConnections做了一些更好的事情,在这种情况下最重要的是,如果它无法连接到服务器,它会重试三次。如果您只是与数据包丢失有一个糟糕的连接,这将有所帮助。

我还用SAX解析InputStream,但是我将InputStream包装在BufferedReader中(使用中间的InputStreamReader)。我不知道SAX是否在内部执行此操作,但根据我的经验,BufferedStreams比非缓冲流工作得更好。使用常规InputStream,您将为每个字节发出读取请求,如果您的连接很糟糕,这只会增加网络问题的可能性。缓冲流将读取每次读取的缓冲区字节数(我想我设置为1024,但您可以尝试不同的值来查看哪种方法最适合您)。

希望有所帮助。