Russian Qt Forum

Qt => Работа с сетью => Тема начата: cupersuper от Июль 22, 2012, 21:29



Название: Проблема с URL encode decode
Отправлено: cupersuper от Июль 22, 2012, 21:29
Здравствуйте, подскажите, пожалуйста, отправляют запрос:

Код:
QNetworkAccessManager *manager = new QNetworkAccessManager(0);
QNetworkRequest request;

request.setUrl(QUrl(http://yandex.ru/showcaptcha?retpath=http%3A//yandex.ru/yandsearch%3Frpt%3Drad%26lr%3D1%26text%3D%25D0%25B2%25D0%25BE%25D1%2580%25D0%25BE%25D1%2582%25D0%25B0%2B%25D0%25B3%25D0%25B0%25D1%2580%25D0%25B0%25D0%25B6%25D0%25BD%25D1%258B%25D0%25B5%2B%25D0%25BC%25D0%25B0%25D0%25BB%25D0%25B0%25D1%2585%25D0%25BE%25D0%25B2%25D0%25BA%25D0%25B0%2B%28url%253A%2522levin-group.ru%252F437%2522%2B%257C%2Burl%253A%2522www.group.ru%252F437%2522%29&t=0/1342967850/b669280bd697370c1a3ba33bc4e7bf63&s=c37f9814904f57e8d90e0336505fc0eb));

QNetworkReply *reply = manager->get(request);

Я получаю 404, так как через сниффер видно что запрос отправляется, заменяя символы % на %25:

Код:
/showcaptcha?retpath=http%253A//yandex.ru/yandsearch%253Frpt%253Drad%2526lr%253D1%2526text%253D%2525D0%2525B2%2525D0%2525BE%2525D1%252580%2525D0%2525BE%2525D1%252582%2525D0%2525B0%252B%2525D0%2525B3%2525D0%2525B0%2525D1%252580%2525D0%2525B0%2525D0%2525B6%2525D0%2525BD%2525D1%25258B%2525D0%2525B5%252B%2525D0%2525BC%2525D0%2525B0%2525D0%2525BB%2525D0%2525B0%2525D1%252585%2525D0%2525BE%2525D0%2525B2%2525D0%2525BA%2525D0%2525B0%252B%2528url%25253A%252522levin-group.ru%25252F437%252522%252B%25257C%252Burl%25253A%252522www.levin-group.ru%25252F437%252522%2529&t=0/1342967850/b669280bd697370c1a3ba33bc4e7bf63&s=c37f9814904f57e8d90e0336505fc0e

Причём тот-же запрос, отправляясь через адресную строку браузера, таким образом не преобразуется и сервер отдаёт запрашиваемые данные. Каким образом можно предотвратить перекодирование при отправке? Спасибо.


Название: Re: Проблема с URL encode decode
Отправлено: mutineer от Июль 22, 2012, 21:37
Возможно поможет
QUrl::fromPercentEncoding
или
QUrl::fromEncoded


Название: Re: Проблема с URL encode decode
Отправлено: cupersuper от Июль 23, 2012, 06:11
Возможно поможет
QUrl::fromPercentEncoding
или
QUrl::fromEncoded
Спасибо за ответ

Помогло QUrl::setEncodedUrl() - как бы сообщаем что передаём уже готовую к употреблению строку