【发布时间】:2009-04-08 12:45:57
【问题描述】:
我正在使用 QNetworkAccessManager 从 Web 下载文件,它为任务提供了一个简单的 API。但我希望为类添加下载速率限制,因此所有 http 回复都不会超过该限制(我认为没有理由限制请求)。
我用谷歌搜索了一下,发现了一篇有趣的帖子here。但它所做的是 QTcpSocket 的子类,并使用管理一组套接字的单独类来控制带宽。虽然这很好,但我想继续使用 QNetworkAcessManager 类。
我认为我可以:
- 子类 QNetworkAccessManager 并以某种方式集成子类 QTcpSocket(这可能涉及子类化更多类,QHttp* 类)。
- 使用文章中提供的类并围绕这些类构建我自己的 QNetworkAccessManager。
- QNetworkAccessManager 允许使用代理。我可以编写一个虚假的代理类,其中包含带宽限制逻辑。但这对我来说似乎是一个丑陋的 hack。
虽然前 2 个选项是可能的,但我想知道是否有更简单的方法可以做到这一点?如果不是,你会推荐哪一个?
【问题讨论】: