Russian Qt Forum

Qt => Работа с сетью => Тема начата: PinkPanther от Июнь 09, 2013, 05:48



Название: Получение/передача cookies при работе с QWebView
Отправлено: PinkPanther от Июнь 09, 2013, 05:48
Подскажите пожалуйста Qt-метод решения задачи с использованием cookies:
1) При нажатии кнопки в окне приложения открывается окно QWebView, загружается сайт X.
2) На сайте пользователь вводит логин и пароль, авторизуется, и делает то, что ему нужно.
3) В конце работы он нажимает кнопку в основном окне, окно QWebView закрывается, его данные (логин-пароль) забираются, в форме cookies, сохраняются в реестре Windows (QSettings).
4) В окошке QListWidget появляется его логин, который он ввел на сайте X.
5) При двойном щелчке по логину снова открывается QWebView, тот же сайт X, но при этом программа должна взять его cookies из реестра, отдать их QWebView, или куда-то еще (деталей не знаю, т.к. с этими классами почти не работал), и загрузить сайт X так, чтобы пользователь был на нем авторизован, без ввода логина-пароля. То есть тот же вариант, что и с браузером, за исключением того, что в реестре может лежать множество cookies для входа на этот сайт, и при разных обстоятельствах будет осуществляться вход под разными логинами.
6) Было бы неплохо перед этим назначить заголовок, который бы обманывал сайт X, говоря ему о том, что используется Firefox, IE, Opera или что-то подобное, из известных браузеров. Было бы неплохо, но не критично, так что если это затруднительно, то и фиг бы с ним.

В принципе, ничего сложного, но я не знаю, как получить cookies из QWebView после авторизации, в форме какого класса, и как их потом отдать QWebView, чтобы он их использовал по назначению. Подскажите пожалуйста механизм.


Название: Re: Получение/передача cookies при работе с QWebView
Отправлено: mutineer от Июнь 09, 2013, 09:51
QWebPage * QWebView::page () const
QNetworkAccessManager * QWebPage::networkAccessManager () const
QNetworkCookieJar * QNetworkAccessManager::cookieJar () const

А вот как получить логин это уже хз


Название: Re: Получение/передача cookies при работе с QWebView
Отправлено: PinkPanther от Июнь 09, 2013, 10:20
Спасибо!
Логин от cookies не нужен - он будет внутри урл-а, на известном месте.

Если я правильно понял, в cookiejar после авторизации пользователя будет все необходимое?
И если перед загрузкой второй раз помещу обьект в networkaccessmanager, сайт автоматически его авторизует?


Название: Re: Получение/передача cookies при работе с QWebView
Отправлено: LSergey от Июль 15, 2013, 15:39
Я использовал в проекте урезанный класс CookieJar с демо проекта TabBrowser
Там также реализованы функции сохранения/загрузки настроек.
Немного изменить - и получите искомый вариант, я надеюсь ;)


Название: Re: Получение/передача cookies при работе с QWebView
Отправлено: PinkPanther от Июль 16, 2013, 12:23
Я использовал в проекте урезанный класс CookieJar с демо проекта TabBrowser
Там также реализованы функции сохранения/загрузки настроек.
Немного изменить - и получите искомый вариант, я надеюсь ;)

Спасибо большое!
Как дойдет очередь до этого куска, обязательно воспользуюсь Вашим советом.