QWebPage
Web ページとそのすべてのリソースをダウンロードするために使用します。同時に、このプロセス中に Qt によってダウンロードされる生データを保持したいと思います。QNetworkReply
信号からデータを読み取ることによってこれを行うことvoid QNetworkAccessManager::finished(QNetworkReply * reply)
は、データ自体が既に読み取られている可能性があるため、良い解決策ではありませんQWebPage
。それの訳は
QNetworkReply はシーケンシャル アクセスの QIODevice です。つまり、データがオブジェクトから読み取られると、デバイスによって保持されなくなります。
の詳しい説明通りですQNetworkReply
。
ただし、オーバーライドされたメソッドでQWebPage
カスタムを使用するように構成できますQNetworkAccessManager
createRequest
QNetworkReply * QNetworkAccessManager::createRequest ( Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0 )
正しい解決策は、プロキシを作成してメソッドQNetworkReply
で返すことだと思います。createRequest
このプロキシは、元の場合と同様に、応答からデータを読み取ることができるようにする必要がありますQNetworkReply
(そのため、QWebPage
データを読み取ることができます) QWebPage
。言い換えれば、の基底クラスにはティーが必要です。QNetworkReply
IODevice
このプロキシの書き方