質問

私が使う QWebPage Webページとそのすべてのリソースをダウンロードします。同時に、このプロセス中にQTによってダウンロードされている生データを保留したいと思います。からデータを読んでこれを行う QNetworkReplyvoid 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のプロキシ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top