crossplatform.ru

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


  Ответ в установка куков в QNetworkAccessManager вручную
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
eldar85 Дата 22.9.2010, 16:48
  ну да примерно как то так и работает) в принципи я разобрался со всем чем хотел)) спасибо за помощь)
Litkevich Yuriy Дата 22.9.2010, 15:09
 
Цитата(eldar85 @ 22.9.2010, 15:44) *
взращает только названия типа
"User-Agent", "Cookie", "Host" ....
но само значение не показывает.
Судя по документации:
rawHeaderList() - возвращает список заголовков, а
rawHeader(const QByteArray &headerName) - возвращает необработанные данные указанного заголовка.
(дока на русском)
eldar85 Дата 22.9.2010, 13:09
  что в него то вписывать
reply->rawHeader (а тут что писать то???);


qDebug() << reply->rawHeader("Set-Cookie");

поиск нужного в хидере производиться вот так, то что нужно искать берется из снифера и вставляется в этот код. Эта строка кода вернет нам значение Set-Cookie
eldar85 Дата 22.9.2010, 11:44
  Вот так вот выставляется хидер, можно сюда еще добавить значений которые известны.
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
kwisp Дата 22.9.2010, 10:11
 
Цитата(eldar85 @ 22.9.2010, 10:48) *
пока ответ приходит лишь голая страничка без хидера.

Цитата(kwisp @ 22.9.2010, 10:35) *
у это ты брось!
методы QNetworkReplay:
Цитата
bool hasRawHeader ( const QByteArray & headerName ) const
QVariant header ( QNetworkRequest::KnownHeaders header ) const
QByteArray rawHeader ( const QByteArray & headerName ) const
QList<QByteArray> rawHeaderList () const

Litkevich Yuriy Дата 22.9.2010, 10:02
  вот тут какой-то пример
eldar85 Дата 22.9.2010, 9:48
  )))))) да пользуюсь я асистентом но не пойму как это написать, примеров там нет а додумать не получается, потому и спрашиваю сдесь

вот есть код

    QEventLoop loop;
    QNetworkAccessManager manager;
    QNetworkRequest request;



    request.setUrl(QUrl("http://www.google.ru"));
    request.setRawHeader("Accept-Charset", "text/html; charset=utf-8");
    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");
//куки как я понимаю можно вставить сдесь как я вставил юзер агента
    
    
    QNetworkReply *reply = manager.get( request );
    QObject::connect( reply, SIGNAL( finished() ), &loop, SLOT( quit() ) );

    loop.exec();

    qDebug() << reply->error() << reply->bytesAvailable();

    QByteArray buf = reply->readAll();
    ui->textBrowser->setText(buf);


мне нужно чтобы он возращал ответ странички с хидером и чтобы я мог установить в него куки. пока ответ приходит лишь голая страничка без хидера.
kwisp Дата 22.9.2010, 9:35
 
Цитата(eldar85 @ 22.9.2010, 10:28) *
еще не могу установить так чтобы ответ сервера приходил не просто тело странички а еще и хидер странички.

ну это ты брось!
методы QNetworkReplay:
Цитата
bool hasRawHeader ( const QByteArray & headerName ) const
QVariant header ( QNetworkRequest::KnownHeaders header ) const
QByteArray rawHeader ( const QByteArray & headerName ) const
QList<QByteArray> rawHeaderList () const

чего не понятного? изучай ассистент и вперед.

Цитата(eldar85 @ 22.9.2010, 10:29) *
но какой то бред получается....

какой бред?
почему из тебя всё надо выпытывать?

П.С.
знаешь такой анекдот есть:
Больной:
-Доктор у меня что-то болит где-то вот здесь.
Доктор:
-Очень хорошо, сейчас я вам выпишу какое-то лекарство!
eldar85 Дата 22.9.2010, 9:29
  да это я читал, только разобраться все равно не могу, там ни одного примера... в сети такие примеры только с использованием курла, а хочется поработать с сетью с помощью Qt.
еще не могу установить так чтобы ответ сервера приходил не просто тело странички а еще и хидер странички.

вот пробую как то так
request.setRawHeader("ContentTypeHeader", "text/html; charset=utf-8");
    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");


ну и тут же остальное но какой то бред получается....
kwisp Дата 22.9.2010, 9:26
 
Цитата
void QNetworkRequest::setHeader ( KnownHeaders header, const QVariant & value )
Sets the value of the known header header to be value, overriding any previously set headers. This operation also sets the equivalent raw HTTP header.

See also KnownHeaders, setRawHeader(), and header().

не то?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 14:13