У меня есть следующий код для запроса:
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...*/
}
Запрошенный URL должен быть
https://somewebpage.domain:443/REST/login.php?method=login_md5
но QNetworkRequest запрашивает этот, несмотря на то, что я установил URL-адрес как закодированный (отладка url.toEncoded() правильно печатает '?'):
https://somewebpage.domain:443/REST/login.php%3Fmethod=login_md5
В результате страница 404 не найдена. Я попытался установить URL-адрес с помощью url.toString() и просто URL-адреса, но '?' продолжает путаться. Что я могу сделать, чтобы правильно запросить ссылку?
Я попытался создать QUrl в конструкторе следующим образом:
URL-адрес QUrl("https://"+host+port+connectionString);
Но в результате получается следующая строка:
https://somewebpage.xn--domain-efa/REST/login.php?method=login_md5
Error: "Protocol "" is unknown"
и если я отвечаю-›url(), чтобы проверить URL-адрес, я получаюQUrl( "" )
, так что я не уверен, это один шаг вперед или назад - person Victor   schedule 28.05.2014Protocol "" is unknown"
, либоnot found
. Я также попробовалurl.setUrl(QUrl::fromPercentEncoding(url.toEncoded()));
и печатает его хорошо, но выдает неизвестную ошибку протокола :( большое спасибо за ваше время и помощь, хотя - person Victor   schedule 28.05.2014url.setUrl(QUrl::fromPercentEncoding(url.toEncoded()));
- person Victor   schedule 28.05.2014