Вопрос

я использую 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. Анкет Другими словами тройник за QNetworkReplyS. IODevice базовый класс.

Как написать этот прокси?

Это было полезно?

Решение

Похоже, кто -то уже хотел то же самое и написал прокси для QnetWorkReply.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top