无法通过 QNetworkAccessManager 获取 url(结果与我在浏览器中看到的不同)
Can't get url by QNetworkAccessManager (result differs what I see in my browser)
我的项目使用 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
或者,没有 url编码:
** https://myhost/folder/folder/rss?cn1[]=Web%2C+Mobile+%26+Software+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 中的“+”符号……但我不知道。
我可以提供完整的 link 我需要测试的内容。
拜托,帮忙。
如果您的 url 已经编码,请使用 QUrl::fromEncoded
来自文档:
Parses input and returns the corresponding QUrl. input is assumed to
be in encoded form, containing only ASCII characters.
我的项目使用 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
或者,没有 url编码: ** https://myhost/folder/folder/rss?cn1[]=Web%2C+Mobile+%26+Software+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 中的“+”符号……但我不知道。 我可以提供完整的 link 我需要测试的内容。
拜托,帮忙。
如果您的 url 已经编码,请使用 QUrl::fromEncoded
来自文档:
Parses input and returns the corresponding QUrl. input is assumed to be in encoded form, containing only ASCII characters.