Не удается получить URL с помощью QNetworkAccessManager (результат отличается от того, что я вижу в своем браузере)

Я использую QT 4.8.2 для своего проекта.
Моя проблема в том, что QTNetworkAccess не может правильно получить мой URL (или декодировать его).
Если я вставлю свой URL в браузер, я вижу, что результат в браузере отличается от того, что я вижу в результате (QNetworkreply).

Вот пример URL, который мне нужно получить:
* https: //? MyHost / папка / папка / Новости cn1% 5B0% 5D = Web% 2C + Mobile +% 26 + Программное обеспечение + Dev&амп; CN2% 5B0% 5D = Web + Development

или без urlencode:
** https: //? MyHost / папка / папка / Новости cn1 [] = Web% 2C + Mobile +% 26 + Программное обеспечение + Dev&CN2 [] = Web + Development

Я пытаюсь передать QUrl как * и **.

Это мой код для получения:

networkAccess = new QNetworkAccessManager();
connect (networkAccess, SIGNAL (finished(QNetworkReply*)), this, SLOT (h_networkAccess(QNetworkReply*)));

request = new QNetworkRequest(QUrl(settings->get()->rss_link));
request->setRawHeader("User-Agent",      "Mozilla/5.0 (Windows NT 5.1; rv:37.0) Gecko/20100101 Firefox/37.0");
request->setRawHeader("Accept",          "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
request->setRawHeader("Accept-Encoding", "deflate");
request->setRawHeader("Connection",      "keep-alive");
if (settings->get()->cookie != "")
request->setRawHeader("Cookie",      settings->get()->cookie.toAscii());

networkAccess->get(*request);

Может быть, моя проблема в символе «+» в URL … Но я не знаю.
Я могу предоставить полную ссылку, что мне нужно проверить.

Пожалуйста помоги.

0

Решение

Если ваш URL уже закодирован, используйте QUrl::fromEncoded
Из документа:

Разбирает ввод и возвращает соответствующий QUrl. ввод предполагается
быть в кодированной форме, содержащей только символы ASCII.

0

Другие решения


По вопросам рекламы [email protected]