Название: Перехват данных post запроса Отправлено: DenKor29 от Ноябрь 23, 2014, 11:59 Мне нужно перехватить данные post запроса.
Но если я пытаюсь прочитать данные из outgoingData (закоментированная строка) программа падает ... Как правильно нужно перехвать данные из устройства QIODevice Код: QNetworkReply *InterceptorAccessManager::createRequest(Operation op, const QNetworkRequest &request, Название: Re: Перехват данных post запроса Отправлено: Old от Ноябрь 23, 2014, 20:29 А что передается в outgoingData? Валидный ли это указатель?
Название: Re: Перехват данных post запроса Отправлено: DenKor29 от Ноябрь 24, 2014, 08:25 А что передается в outgoingData? Валидный ли это указатель? Указатель действительно был неправильный. Как я понял для POST запросов он всегда Null. Код поправил и программа не падает.Остался вопрос как нужно перехватывать данные post запроса. Как я понимаю QNetworkManager::post это не виртуальная функция и ёё переопределить нельзя. Получается нужно полностью писать свой класс, а не наследовать QNetworkManager? Название: Re: Перехват данных post запроса Отправлено: carrygun от Ноябрь 24, 2014, 11:49 Ну почему же? Наследуетесь и пишете что-то в духе (псевдокод):
Код
Название: Re: Перехват данных post запроса Отправлено: DenKor29 от Ноябрь 25, 2014, 16:35 Ну почему же? Наследуетесь и пишете что-то в духе (псевдокод): Код
Код: view = new QWebView(this); Как я понимаю если я создам виртуальный метод post , то QWebView будет работать неправильно ? view в лучшем случае будет вызывать метод QNetworkAccessManager::post. Про мой метод он ничего не знает, так как QNetworkAccessManager::post не виртуальный. Мой переопределеный метод будет вызываться только из моих процедур где я буду вызывать InterceptorAccessManager::post Я прав ? Название: Re: Перехват данных post запроса Отправлено: carrygun от Ноябрь 26, 2014, 05:24 Я прав ? Нет. Если вы в InterceptorAccessManager переопределите post() как я показал, то будет вызываться ваша реализация + стандартная: return QNetworkAccessManager::post(request, postdata);. За это время можно было уже проверить несколько раз. P.S.: я поторопился, не заметил, что вы его в QWebView передаете, там он скорее всего в обычный QNAM кастуется, и, похоже, что этот метод не прокатит. |