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