QWebPageで使用されているQNetWorkReplyのデータを読み取る方法は?
-
11-10-2019 - |
質問
私が使う QWebPage
Webページとそのすべてのリソースをダウンロードします。同時に、このプロセス中にQTによってダウンロードされている生データを保留したいと思います。からデータを読んでこれを行う QNetworkReply
の void QNetworkAccessManager::finished(QNetworkReply * reply)
データはすでに読み取られていた可能性があるため、信号は良い解決策ではありません QWebPage
自体。それの訳は
QNetWorkReplyは、シーケンシャルアクセスQioDeviceです。つまり、オブジェクトからデータが読み取られると、デバイスによって保持されなくなります。
によると 詳細な説明 の QNetworkReply
.
でも QWebPage
カスタムを使用するように構成できます QNetworkAccessManager
Overridenで createRequest
方法
QNetworkReply * QNetworkAccessManager::createRequest ( Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0 )
正しい解決策はプロキシを作成することだと思います QNetworkReply
そして、それを返します createRequest
方法。このプロキシは、オリジナルの場合と同様に、返信からデータを読むことができるはずです QNetworkReply
(となることによって QWebPage
それからデータを読むことができます)と同時に、このプロキシは、それが読み取られた後、他のオブジェクトによるデータを読むことを可能にするはずです QWebPage
. 。言い換えれば、私たちは必要です ティー にとって QNetworkReply
's IODevice
基本クラス。
このプロキシを書く方法は?
解決
誰かがすでに同じものを望んでいて書いたようです QNetWorkReplyのプロキシ.