Russian Qt Forum

Qt => Работа с сетью => Тема начата: Zusykss от Апрель 17, 2018, 11:42



Название: По чему не кодируется query строка
Отправлено: Zusykss от Апрель 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);

Спасибо за помощь ;D


Название: Re: По чему не кодируется query строка
Отправлено: dio от Апрель 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));


Название: Re: По чему не кодируется query строка
Отправлено: Zusykss от Апрель 17, 2018, 18:35
попробую, благодарю :)


Название: Re: По чему не кодируется query строка
Отправлено: Zusykss от Апрель 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 - такая ссылка должна быть


Название: Re: По чему не кодируется query строка
Отправлено: Zusykss от Апрель 18, 2018, 07:36
Вот странно строка кодируется, когда в QNetworkRequest вставляю он его декодирует, как это отключить ?
В дебаг выводится нормально, а в объекте меняется, что за жесть?
На картинке показал