Название: [РЕШЕНО] QHttp авторизация POST методом Отправлено: bosfor от Январь 22, 2012, 00:31 согласно изученным примерам передаю свой запрос, но при анализе в сниффере есть различия в прекрипляемых данных. Оразец выглядит как:
Код: ... а у меня получается так: Код: ... как мне достичь первого варианта ? код использую такой: Код: QByteArray ba("login=1234567&passwd=1234567"); Название: Re: QHttp авторизация POST методом Отправлено: thechicho от Январь 22, 2012, 16:56 используй QNetworkAccessManager
на форуме я давал примеры как пост запрос отправлять, ищи Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Январь 23, 2012, 13:04 что же получается, QHttp не содержит такого механизма ? а кто скажет в чем изюминка этих двух разных по стркутуре но одинаковых по сути запросов ??
Название: Re: QHttp авторизация POST методом Отправлено: thechicho от Январь 23, 2012, 13:25 QHttp устарел.
это не запросы, а классы для работы с сетью. запросы это гет, пост, хед и тп. Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Январь 23, 2012, 13:40 QHttp устарел. это не запросы, а классы для работы с сетью. запросы это гет, пост, хед и тп. да спасибо )) я имел в виду не различие классов, а структуру пакетов сформированных QHttp и реальным приложением (чью работу я эмитирую) приведенных в первых двух кодовых вставках. Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Январь 23, 2012, 16:44 да QNetworkAccessManager формирует правильное тело пакета ! )) осталось разобраться где взять заголовок ответной страницы
Название: Re: QHttp авторизация POST методом Отправлено: thechicho от Январь 23, 2012, 19:22 Код
Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Январь 23, 2012, 22:05 ... Спасибо за классный пример ! Очень облегчил жизнь )) Слышал есть у этго класса инструмен для удобной обработки печенюшек ? Название: Re: QHttp авторизация POST методом Отправлено: thechicho от Январь 24, 2012, 00:29 QNetworkAccessManager qnam;
QNetworkCookieJar *cookieJar = new QNetworkCookieJar; qnam.setCookieJar(cookieJar); Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Январь 24, 2012, 11:23 при загрузке основной страницы где внутри ее формируются печенюшки возможно посредством ява-скриптов. как можно загрузив страницу в QNetworkAccessManager выполнить ее содержимое (возможно ява-скрипты) чтобы получить на выходе требуемые печенюшки ?
... понял, что надо юзать QWebPage или QWebView. Можно ли привязать к ним свой QNetworkAccessManager для отслеживания пришедших печенюшек ? Название: Re: QHttp авторизация POST методом Отправлено: thechicho от Январь 24, 2012, 16:41 можно. когда разберешься, выложи код.
я постил уже где-то свой вариант. пример авторизации на этом форуме, где выполняется джаваскрипт, а потом результат отправляется пост-запросом, ищи. Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Январь 29, 2012, 22:43 Создал проект на основе QWebView.
Есть необходимость просматривать исходящие и входящие запросы со всем содержимым. Привязал класс порожденный от QNetworkAccessManager и стал прослушивать сигнал finished(QNetworkReply*). Как следствие получаю заголовок исходящего пакета и заголовок с телом ответного . Правда тело ответного пакета не всегда получается вытащить хотя в заголовке точно указан размер да и сниффер показывает наличие содержимого. Мне хочется получить не только заголовок исходящего запроса но и само тело пакета, пытался переопределить функцию post(const QNetworkRequest &request, const QByteArray &data) у класса QNetworkAccessManager, но увы его обработка даже не начинается ((. Ниже привожу проект: windows.h Код: #ifndef WINDOW_H window.cpp Код: #include <QtGui> P.S: Запись в QTextEdit является грубым приближением поэтому работает по установке флага непродолжителное время РЕЗЮМЕ ВОПРОСОВ: 1) используюя класс QNetworkAccessManager получить полное содержимое исходящего пакета(вместе с POST запросом). 2) почему зачастую в заголвке ответа указана длина данных (и они действительно есть - проверка сниффером), а replay->readAll() выбирает 0. 3) какие функции классов QWebView или QNetworkAccessManager переназначить, чтобы суметь изменить исходящие и отведные данные соответсвенно до отправки и до исполнения ? (некое подобие собсвенного фильтра) Название: Re: QHttp авторизация POST методом Отправлено: thechicho от Январь 30, 2012, 14:15 // 1) используюя класс QNetworkAccessManager получить полное содержимое исходящего пакета(вместе с POST запросом).
самому интересно. я обычно qDebug() делаю на пост данные в коде и исходящие заголовки смотрю. что тебе не хватает в этих данных? // 2) почему зачастую в заголвке ответа указана длина данных (и они действительно есть - проверка сниффером), а replay->readAll() выбирает 0 давай конкретный пример, так не скажу. //3) какие функции классов QWebView или QNetworkAccessManager переназначить, чтобы суметь изменить исходящие и отведные данные соответсвенно до отправки и до исполнения ? (некое подобие собсвенного фильтра) ну популярном языке объясни с примерами. чо-нить придумаем тогда. а так я не догоняю чо ты хочешь. если имеется в виду заголовки изменить у qwebview, то ему можно назначить QNetworkAccessManager с нужными заголовками. правда, если потом программно кнопки наживать на странице, будут отправляться стандартные заголовки. чувак тут говорил как можно задать свои заголовки на постоянку, но я еще не пробовал. Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Январь 30, 2012, 23:28 // 1) используюя класс QNetworkAccessManager получить полное содержимое исходящего пакета(вместе с POST запросом). самому интересно. я обычно qDebug() делаю на пост данные в коде и исходящие заголовки смотрю. что тебе не хватает в этих данных? мне нужно видеть не только заголовок исходящего запроса но и то что идет после заголовка )) я обычно qDebug() делаю на пост данные в коде примерчик относительно вышеприведенного проекта можно ?и исходящие заголовки смотрю. Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Январь 30, 2012, 23:34 //3) какие функции классов QWebView или QNetworkAccessManager переназначить, чтобы суметь изменить исходящие и отведные данные соответсвенно до отправки и до исполнения ? (некое подобие собсвенного фильтра) ну популярном языке объясни с примерами. чо-нить придумаем тогда. а так я не догоняю чо ты хочешь. если имеется в виду заголовки изменить у qwebview, то ему можно назначить QNetworkAccessManager с нужными заголовками. правда, если потом программно кнопки наживать на странице, будут отправляться стандартные заголовки. чувак тут говорил как можно задать свои заголовки на постоянку, но я еще не пробовал. ребят - идея такова: 1) после установки урл загружается указанная страница -->(вот то место)<-- и передается на отображение. Вот тут бы неплохо между моментом ее полного получения и передачей на отображение(исполнение) сделать програмные корректировки. 2) ну соответсвенно после того как был подготовлен запрос на получение очередного пакета и реальной его передачей серверу тоже установить возможность изменения содержимого. Картина задумки проясняется ? Название: Re: QHttp авторизация POST методом Отправлено: thechicho от Январь 31, 2012, 11:18 // примерчик относительно вышеприведенного проекта можно ?
qDebug() << postData; // Вот тут бы неплохо между моментом ее полного получения и передачей на отображение(исполнение) сделать програмные корректировки дак сделай // 2) ну соответсвенно после того как был подготовлен запрос на получение очередного пакета и реальной его передачей серверу тоже установить возможность изменения содержимого. wtf? Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Январь 31, 2012, 16:47 qDebug() << postData; что-то невижу такой переменной ???дак сделай если бы мог сам сделать не просил бы помощи здесь ....wtf? это фильтр входящего контентаА что ГУРУ молчат ? Название: Re: QHttp авторизация POST методом Отправлено: thechicho от Январь 31, 2012, 23:01 // что-то невижу такой переменной
епте. QNetworkReply * QNetworkAccessManager::post ( const QNetworkRequest & request, const QByteArray & data ) const QByteArray & data ??? короче сам разбирайся, на все твои вопросы, есть ответы в доках. я тя просил дать примеры, ты не дал. Название: Re: QHttp авторизация POST методом Отправлено: bosfor от Февраль 01, 2012, 09:54 // что-то невижу такой переменной по иронии разрабочиков QWebView использует соседнюю функцию QNetworkReply *QNetworkAccessManager::post(const QNetworkRequest &request, QIODevice *data) миную указанную выше ((. епте. QNetworkReply * QNetworkAccessManager::post ( const QNetworkRequest & request, const QByteArray & data ) const QByteArray & data ??? И что грусно ничего немогу с ней сделать: 1) пытался переопределить в своем классе - не прокатывает 2) пытался изменить QTшный код в этой функции тоже какието касяки при отладке, как еслибы мои изменения небыли учтены ??? Тут я в затруднении .... короче сам разбирайся, на все твои вопросы, есть ответы в доках. я тя просил дать примеры, ты не дал. без обид, а как-же пост №11 ? там выложены 2 файла проекта, а стартовой страничкой можно делать тот-же mail.ruНазвание: Re: QHttp авторизация POST методом Отправлено: bosfor от Февраль 01, 2012, 12:54 Ребят нашел ответ на свой вопрос )) А ларчик открывался просто надо было переопределить функцию createRequest (разу не заметил что она вызывается внутри post) спасибо посту http://www.prog.org.ru/topic_11629_0.html (http://www.prog.org.ru/topic_11629_0.html)
Код: class MyAccessManager : public QNetworkAccessManager |