Russian Qt Forum

Qt => Работа с сетью => Тема начата: stima от Декабрь 05, 2012, 05:05



Название: Post, Header
Отправлено: stima от Декабрь 05, 2012, 05:05
Есть форма с пост запросом. Припустим форма шлет 3 параметра, одно из них имеет значение кириллицей.

В реальном хедере есть поле(Line-based text data):
Код:
p1=p1&p2=%D0%92%D0%BE%D0%B9%D1%82%D0%B8&p3=p3

В моем хедере такого поля нет но есть:
Код:
Media Type: application/x-www-from-url-encoded (95 bytes)

Код:
        QByteArray params;
        params += "p1=p1&";
        params += "p2=Войти&";
        params += "p3=p3";

        QNetworkRequest request;
        request.setUrl(QUrl("***"));

        request.setRawHeader("connection", "keep-alive");
        request.setRawHeader("content-length", QByteArray::number(params.count()));
        request.setRawHeader("cache-control", "no-cache");
        request.setRawHeader("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.96 Safari/537.11");
        request.setRawHeader("content-type", "application/x-www-from-url-encoded");
        request.setRawHeader("referer", "***");
        request.setRawHeader("host", "***");
 
        manager->post(request, params);

Есть 2 вопроса.
1. Значение на русском точно "Войти"(в реальном хедере представлено как %D0%92%D0%BE%D0%B9%D1%82%D0%B8). Как мне перекодировать мои params так чтобы это учитывалось.
2. "Line-based text data" - что это такое и с чем его едят. Где мои параметры


Название: Re: Post, Header
Отправлено: fuCtor от Декабрь 05, 2012, 06:49
По первому пункту  QByteArray::toPercentEncodin
По второму Google


Название: Re: Post, Header
Отправлено: stima от Декабрь 05, 2012, 12:18
Ок. Как правильно сформулировать запрос на 2 вопрос?


Название: Re: Post, Header
Отправлено: thechicho от Декабрь 06, 2012, 14:03
пробуй так:

QByteArray params = "p1=p1&p2=Войти&p3=p3";

request.setRawHeader("connection", "keep-alive");
request.setRawHeader("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.96 Safari/537.11");
request.setRawHeader("content-type", "application/x-www-form-urlencoded");
request.setRawHeader("referer", "http://www.yandex.ru");