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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: По чему не кодируется query строка  (Прочитано 392 раз)
Zusykss
Самовар
**
Offline Offline

Сообщений: 114


Просмотр профиля
« : Апрель 17, 2018, 11:42 »

Добрый день друзья столкунлся с проблемой что строка не кодирует символы ", &" я их кодирую с помощью replace, а когда делаю запрос  она не кодирует пробелы, я сделал и для пробелов replace, а когда запрос отправляю в ссылке пишется ошибка :
Error transferring https://amzscout.net/estimator/v1/sales?domain=COM&category=Clothing%2C Shoes %26 Jewelry&rank=3322

Вот изначальная строка:
"https://amzscout.net/estimator/v1/sales?domain=COM&category=Clothing%2C%20Shoes%20%26%20Jewelry&rank=3322

код
Код:
QNetworkRequest request;
    QString url = "https://amzscout.net/estimator/v1/sales?domain=COM&category=" + result.m_category.replace(",", "%2C").replace("&", "%26").replace(" ", "%20") + "&rank="+ result.m_BSR;
    QUrl url2;
    qDebug() << url;
    request.setRawHeader("Host", "amzscout.net");
    request.setRawHeader("X-Requested-With", "XMLHttpRequest");
    request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36");
    request.setRawHeader("Referer", "https://amzscout.net/sales-estimator");
   // QString encodedUrl = url2.toEncoded(QUrl::EncodeSpaces);
    request.setUrl(QUrl(url));
    QString res = getResponse(request);

Спасибо за помощь Смеющийся
Записан
dio
Чайник
*
Offline Offline

Сообщений: 53


Просмотр профиля
« Ответ #1 : Апрель 17, 2018, 12:21 »

Добрый день!

Может так:
Код:
QUrl vUrl("https://amzscout.net/estimator/v1/sales");
QUrlQuery vQuery;
vQuery.addQueryItem("domain","COM");
vQuery.addQueryItem("category","Clothing,C Shoes & Jewelry");
vQuery.addQueryItem("rank","3322");
vUrl.setQuery(vQuery);
qDebug()<<vUrl.toString(QUrl::FormattingOptions(QUrl::FullyEncoded));
Записан
Zusykss
Самовар
**
Offline Offline

Сообщений: 114


Просмотр профиля
« Ответ #2 : Апрель 17, 2018, 18:35 »

попробую, благодарю Улыбающийся
Записан
Zusykss
Самовар
**
Offline Offline

Сообщений: 114


Просмотр профиля
« Ответ #3 : Апрель 18, 2018, 06:55 »

Почему-то не работает. То есть оно работает когда пишу в qDebug()
он выводит то что мне нужно, а когда в QNetworkRequest пихаю и отсылаю запрос, он не работает...
Ссылка меняется - https://amzscout.net/estimator/v1/sales?domain=COM&category=Clothing%2C Shoes %26 Jewelry&rank=3145 в такой вид
А должны быть еще и проблемы изменены
https://amzscout.net/estimator/v1/sales?domain=COM&category=Clothing%2C%20Shoes%20%26%20Jewelry&rank=3145 - такая ссылка должна быть
Записан
Zusykss
Самовар
**
Offline Offline

Сообщений: 114


Просмотр профиля
« Ответ #4 : Апрель 18, 2018, 07:36 »

Вот странно строка кодируется, когда в QNetworkRequest вставляю он его декодирует, как это отключить ?
В дебаг выводится нормально, а в объекте меняется, что за жесть?
На картинке показал
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

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