Как читать данные из QnetWorkReply, используемой QWebPage?
-
11-10-2019 - |
Вопрос
я использую QWebPage
Чтобы загрузить веб -страницу, а также все ее ресурсы. В то же время я хотел бы удержать необработанные данные, загружаемые 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
S. IODevice
базовый класс.
Как написать этот прокси?
Решение
Похоже, кто -то уже хотел то же самое и написал прокси для QnetWorkReply.