我有下一个代码来提出请求:
void HTTPClient::post(QString connectionString, QHttpMultiPart* _multiPart, bool returnProgress) {
QUrl url;
if (ssl)
url.setScheme("https");
else
url.setScheme("http");
url.setHost(host);
url.setPort(port);
url.setPath(connectionString);
url.setUrl(url.toEncoded());
QNetworkRequest request(url);
request.setRawHeader("User-Agent", QCoreApplication::applicationName().toLatin1());
/*...irrelevant code...*/
}
请求的网址应该是
https://somewebpage.domain:443/REST/login.php?method=login_md5
但是尽管我将 url 设置为已编码,但 QNetworkRequest 还是请求了这个(调试 url.toEncoded() 会正确打印“?”):
https://somewebpage.domain:443/REST/login.php%3Fmethod=login_md5
这会导致 404 not found 页面。我试过用 url.toString() 设置 url,只是 url,但是 '?' 一直在搞砸。我该怎么做才能正确请求链接?
我尝试在构造函数中构建 QUrl,如下所示:
QUrl url("https://"+host+port+connectionString);
但结果是下一个字符串:
https://somewebpage.xn--domain-efa/REST/login.php?method=login_md5