crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> установка куков в QNetworkAccessManager вручную
eldar85
  опции профиля:
сообщение 21.9.2010, 21:31
Сообщение #1


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


Как можно установить куки вручную, строкой а не с помощью того что не видно типа setCookieJar который распологает куки в каком то невидемом файле. Мне нужно что то типа такого как в курле
curl_easy_setopt(curl, CURLOPT_COOKIE, cookie.c_str());

где cookie.c_str() и есть куки которые мы спарсили.
не могу понять систему формирования хидера в QNetworkAccessManager .
Заранее благодарю за ответы)

вот есть такой код закачивает страницу, но мне нужно скачивать картинку с куками установленными(выпарсенными) из хидера и чтобы его спокойно можно было вставить в куки при загрузки страницы и не бояться что будет использована не та кука) очень нужно имено так сделать.

 QEventLoop loop;
           QNetworkAccessManager manager;
           QNetworkReply *reply = manager.get( QNetworkRequest( QUrl( "http://www.opennet.ru/docs/RUS/qt3_prog/c7638.html" ) ) );

           QObject::connect( reply, SIGNAL( finished() ), &loop, SLOT( quit() ) );
           loop.exec();

           qDebug() << reply->error() << reply->bytesAvailable();
           QByteArray buf = reply->readAll();
           QFile file( "save1.txt" );
           if( file.open( QIODevice::WriteOnly ) )
           {
                   file.write( buf );
           }




я так понимаю что все параметры хидера устанавливаются в
QNetworkRequest request;

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
eldar85
  опции профиля:
сообщение 22.9.2010, 11:44
Сообщение #2


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вот так вот выставляется хидер, можно сюда еще добавить значений которые известны.
request.setUrl(QUrl("http://....));
    request.setRawHeader("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.7");
    request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 MRA 5.6 (build 03402) Firefox/3.6.8 (.NET CLR 3.5.30729) sputnik 2.0.1.41 WebMoney Advisor");
    request.setRawHeader("Cookie", "....");


осталось понять как парсить куки

вот эта строка
QList<QByteArray> rawHeaderList () const

взращает только названия типа
"User-Agent", "Cookie", "Host" ....
но само значение не показывает.
bool hasRawHeader ( const QByteArray & headerName ) const

это просто показывает вернулся ли заголовок или его вообще нет.


а вот эти два не пойму как использовать
QVariant header ( QNetworkRequest::KnownHeaders header ) const
QByteArray rawHeader ( const QByteArray & headerName ) const
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.3.2025, 4:21