Russian Qt Forum
Ноябрь 23, 2024, 14:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Post, Header  (Прочитано 3399 раз)
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" - что это такое и с чем его едят. Где мои параметры
Записан
fuCtor
Гость
« Ответ #1 : Декабрь 05, 2012, 06:49 »

По первому пункту  QByteArray::toPercentEncodin
По второму Google
Записан
stima
Гость
« Ответ #2 : Декабрь 05, 2012, 12:18 »

Ок. Как правильно сформулировать запрос на 2 вопрос?
Записан
thechicho
Гость
« Ответ #3 : Декабрь 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");
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 20.