python - Twisted:如何知道何时收到所有数据?

标签 python twisted

self.agent = Agent(reactor, pool=pool)
self.deferred = self.agent.request(
            'GET',
            self.url,
            Headers({'User-Agent': ['Mozilla/5.0']})
        )

self.deferred.addCallback(self.gotResponse)

但是 gotResponse 调用接收数据的每一部分,而不是全部。我可以收集它,但如何知道我获得了所有数据?

编辑:

我找到了 this (来自“如果响应正文已被完全接收”)但仍然不知道如何实现它。我的意思是,“失败将结束...” 是什么意思?

最佳答案

在 twisted 13.1.0 中,您可以使用 readBody()。从 http://twistedmatrix.com/documents/13.1.0/api/twisted.web.client.readBody.html , “这是一个辅助函数,适用于不想增量接收 HTTP 响应正文的客户端。”

您从回调中调用 readBody(),在上面的示例中,dataReceived() 处理数据,readBody() 返回一个延迟,您将另一个回调附加到该回调,该回调将整个主体作为参数。

喂, 重新设计。

关于python - Twisted:如何知道何时收到所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12875783/

相关文章:

python - 扭曲的重写方法?

Python Twisted 与 callInThread

python - 如何使用 python 在本地测试 lambda?

python - Django 多对多过滤字段

python - 从 CSV 创建字典而不重复顶层

python - 在没有安装权限的服务器上使用 Twisted?

python - 在高速公路python中自动重新连接

python - 了解代理示例中的 defer.DeferredQueue()

python - 是否有一种 Python 方法可以访问类的所有非私有(private)和非内置属性?

javascript - 如何用动态类型语言描述函数参数?