如何从QWebPage使用的QNetworkReply读取数据?

时间:2010-12-17 23:27:41

标签: qt tee qnetworkaccessmanager qwebkit qwebpage

我使用QWebPage下载网页及其所有资源。与此同时,我想了解Qt在此过程中下载的原始数据。通过从QNetworkReply中的void QNetworkAccessManager::finished(QNetworkReply * reply)读取数据来执行此操作 信号不是一个好的解决方案,因为QWebPage本身已经可以读取数据。这是因为

  

QNetworkReply是一种顺序访问   QIODevice,表示一次数据   从对象中读取,不再是   由设备保存。

根据QNetworkReply的{​​{3}}。

但是QWebPage可以配置为使用带有覆盖createRequest方法的自定义detailed description

QNetworkReply * QNetworkAccessManager::createRequest ( Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0 )

我认为正确的解决方案是为QNetworkReply创建代理并在createRequest方法中返回它。此代理应该允许从原始QNetworkReply的情况中读取回复数据(以便QWebPage可以从中读取数据)但同时此代理应该允许其他对象读取数据在QWebPage读完之后。换句话说,对QNetworkReply的{​​{1}}基类我们需要QNetworkAccessManager

如何编写此代理?

1 个答案:

答案 0 :(得分:4)

看起来某人已经想要了同样的内容并写了a proxy for the QNetworkReply