haskell chuncked http阅读

问题描述:

下面是下一个实际问题。haskell chuncked http阅读

我想从http服务器(数据库更新)下载一些大文件。此操作应阻止用户UI,防止他输入数据。所以问题是要显示用户进度条,这将告诉他还有多少要等待。

在python中,请求对象打开文件类对象。我已经通过卡盘阅读并通过回调函数向GUI报告。

如何在haskell中实现相同?如何获得当前下载的大小并报告?

在Haskell中,您可以像python版本那样做,但细节取决于您使用的GUI库。

有一些关于如何检测已经到达的输入的选项。一种方法是使用惰性IO。那么你通常会得到一个字符串作为结果,这是随着数据到来而延迟构建的。然后,您可以编写遍历列表的IO函数,并在用户界面更新时更新UI。这可能是一个非常方便的方法,但惰性IO往往非常脆弱,因此请谨慎使用它。

另一个选择是使用一些接口,它可以在它们到达时提供对块的访问。我对这样的图书馆没有任何个人经验,但HTTP图书馆似乎支持,在基本模块。

为了跟踪进度,在MissingH库中有一个很好的模块:Data.Progress.Tracker

如果您提供有关您的特定场景的更多详细信息,则可以进一步评论。

祝你好运。

+0

你的回答看起来像是“使用源码,Luk”。这是我不想自己做的。 我接受你的答案,但把-1,因为,我仍然需要通过消息来源。稍后我会(也许)在这里发布我搜索的内容。 – 2009-12-17 05:37:37

+0

但是,鉴于您对问题的模糊描述,很难准确显示如何执行此操作。正如我所说,如果你提供一些更具体的细节,可以给出更有帮助的答案。 – svenningsson 2009-12-17 14:02:00