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

Pio*_*ost 5 qt tee qwebpage qnetworkaccessmanager qwebkit

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

QNetworkReply是一个顺序访问QIODevice,这意味着一旦从对象读取数据,它就不再由设备保留.

根据详细描述QNetworkReply.

但是QWebPage可以配置为使用custom QNetworkAccessManagerwith overriden createRequest方法

QNetworkReply * QNetworkAccessManager::createRequest ( Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0 )
Run Code Online (Sandbox Code Playgroud)

我认为正确的解决方案是为方法创建代理QNetworkReply并将其返回createRequest.这个代理应该允许从原始的情况中读取数据QNetworkReply(因此QWebPage可以从中读取数据),但同时该代理应该允许在读取数据后读取其他对象的数据QWebPage.换句话说,我们需要发球QNetworkReplyIODevice基类.

怎么写这个代理?

Pio*_*ost 4

看起来有人已经想要同样的东西并为 QNetworkReply 编写了代理