Russian Qt Forum

Qt => Работа с сетью => Тема начата: anDROid от Декабрь 06, 2010, 14:36



Название: Куки в файл QNetworkAccessManager
Отправлено: anDROid от Декабрь 06, 2010, 14:36
С помощью QNetworkAccessManager выполнил запрос, получил куки,как сохранить их в файл,а потом использовать их оттуда?


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: ufna от Декабрь 06, 2010, 16:50
Получаешь из QNAM текущие QNetworkCookieJar  путем cookieJar (), далее находишь нужный QNetworkCookie и сохраняешь его value ().


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: anDROid от Декабрь 06, 2010, 19:20
Спс,с выводом печенек разобрался,сейчас буду разбираться с вводом...


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: anDROid от Декабрь 06, 2010, 19:26
В каком виде лучше сохранять полученные куки,чтобы потом их было легче использовать?
Думаю может в виде "Set-Cookie:" а потом использовать QNetworkCookie::parseCookies?


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: ufna от Декабрь 06, 2010, 20:20
А ввод обратен выводу - создается КукиДжар, в него пихаются нужные куки, создавая на основе данных, что сохранил.

По мне так лучше всего сохранять в бинарный файл данные, нужные для конструктора куков. Хотя дело вкуса.


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: anDROid от Декабрь 06, 2010, 21:19
После использования QNetworkCookie::parseCookies вываливается вот такое чудо
Код:
Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly
RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: Tonal от Декабрь 07, 2010, 08:34
Я делаю вот так:
Код
Python
class NetworkCookieJar(QNetworkCookieJar):
 def __init__(self, parent=None, fname='cookies.txt'):
   super(NetworkCookieJar, self).__init__(parent)
   self.load(fname)
 
 def load(self, fname='cookies.txt'):
   if not exists(fname):
     return
   allC = tuple(
     cooky for li in file(fname)
     for cooky in QNetworkCookie.parseCookies(li.rstrip()))
   if allC:
     self.setAllCookies(allC)
 
 def save(self, fname='cookies.txt'):
   out = file(fname, 'w')
   allC = self.allCookies()
   for c in allC:
     print>>out, c.toRawForm()
 


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: anDROid от Декабрь 07, 2010, 12:03
Сначала попробую по-своему...
Косяк нашел у себя...


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: anDROid от Декабрь 07, 2010, 12:48
Спс всем,разобрался.


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: eldar85 от Декабрь 30, 2010, 19:27
а как решил то??? покажи пример...


Название: Re: Куки в файл QNetworkAccessManager
Отправлено: eldar85 от Декабрь 30, 2010, 19:34
что  если вот так куки получить
Код:
cookie_loaded = reply->rawHeader("Set-Cookie");
то можно ли их потом вставить в QNAM???