代码之家  ›  专栏  ›  技术社区  ›  jeffh

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

  •  1
  • jeffh  · 技术社区  · 16 年前

    在Android中,从HTTP资源解析XML的最佳实践是什么?我一直在使用httpurlconnection来检索一个inputstream,用buffered inputstream包装它,然后使用SAX来解析缓冲流。虽然我确实收到了socketTimeoutException的错误报告,但在大多数情况下,它是有效的:操作超时或常规分析错误。我相信这是由于输入流。

    1. 使用httpclient而不是httpurlconnection会有帮助吗?如果是,为什么?
    2. 应该将流输出到一个文件,而不是将该文件解析为流吗?

    任何意见或指示都将受到极大的赞赏。谢谢你抽出时间。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Nemi    16 年前

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

    我还使用SAX分析输入流,但我将输入流包装在缓冲读卡器中(使用中间的inputstreamreader)。我不知道SAX是否在内部这样做,但是根据我的经验,缓冲流比非缓冲流工作得更好。对于常规的输入流,您将对每个字节发出读取请求,这只会增加在连接不好的情况下出现网络问题的可能性。缓冲流将以每次读取的缓冲区字节数读取(我想我将我的设置为1024,但您可以尝试不同的值,以查看什么对您最有效)。

    希望有帮助。