QNetworkAccessManager не может получить URL (результат отличается от того, что я вижу в своем браузере)
Я использую QT 4.8.2 для своего проекта. Моя проблема в том, что QTNetworkAccess не может правильно получить мой URL (или декодировать его). Если я вставляю свой URL в браузер, я вижу, какой результат в браузере отличается от того, что я вижу в результате (QNetworkreply).
Вот пример URL, который мне нужно получить: * https://myhost/folder/folder/rss?cn1%5B0%5D=Web%2C+Mobile+%26+Software+Dev&cn2%5B0%5D=Web+Development
или без urlencode: ** https: // myhost / folder / folder / rss? cn1 [] = Интернет% 2C + Мобильный +% 26 + Программное обеспечение + Dev & cn2 [] = Веб + Разработка
Я пытаюсь передать 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... Но я не знаю. Я могу предоставить полную ссылку, что мне нужно проверить.
Пожалуйста помоги.
1 ответ
Если ваш URL уже закодирован, используйте QUrl::fromEncoded
Из документа:
Разбирает ввод и возвращает соответствующий QUrl. ввод предполагается в кодированном виде, содержащем только символы ASCII.