微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

收到所有响应内容后,twisted.web.http.HTTPClient是否实现回调?

如何解决收到所有响应内容后,twisted.web.http.HTTPClient是否实现回调?

| 文档指出,\'handleResponseEnd \'在完全收到响应后即被调用。 http://twistedmatrix.com/documents/11.0.0/api/twisted.web.http.HTTPClient.html#handleResponseEnd 但是,调试似乎表明并非总是如此。当对同一URI发出多个请求时,它似乎仅被FirsT请求调用。当对不同的URI发出多个请求时,它仍然似乎仅被FirsT请求调用。 是否需要这种行为?多次向同一URI发出请求几乎是有道理的,因为接收到的响应通常为“ 304未修改”,因此客户端不会多次接收到该内容。但是,我仍然希望运行一个回调,声明“我们已经收到响应”。 是否有其他回调更适合访问完整的响应?     

解决方法

        通常,您可以通过在工厂中致电
buildProtocol()
来为每个请求实例化一个新的
HTTPClient
HTTPPageGetter
Agent
就是这样做的。 一种例外是使用HTTP持久连接时。 您正在做什么,因此您需要对多个请求使用相同的协议实例?     ,        我实际上是昨晚发现的。我有一个从HTTPClient继承的子类。覆盖connectionMade时,我忘记了调用父级的connectionMade。由于connectionMade充当协议的默认构造函数,因此未正确配置实例。 虽然我不知道该解决方案的每个细节,但事实证明它在测试中是可靠的。发生的异常消失了。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。