QT: Мне было интересно, есть ли способ создать QUrl или другой объект класса URL из строки без кодирования конечного URL. Например, вот фрагмент моего кода:
QString GetJsonStringFromURL(QString url) //url == "192.168.0.111/controller?POSITION|03|100"
{
QEventLoop eventLoop;
QNetworkAccessManager mgr;
QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
QNetworkRequest req( QUrl::fromUserInput(url) ) ;
QNetworkReply *reply = mgr.get(req);
eventLoop.exec(); //wait till reply finished
QString strReply = reply->readAll();
return strReply;
}
Этот код обращается к контроллеру локальной сети, запрашивая его json с помощью метода get, передавая параметр в URL-адресе. URL-адрес, который я передаю, кодируется в процентах:
"192.168.0.111/контроллер?ПОЗИЦИЯ%7C03%7C100"
которого я пытаюсь избежать. Сервер, к которому я пытаюсь получить доступ, представляет собой специальное оборудование с прошивкой, написанной на C, которая не включает процентное декодирование. Я хотел бы избежать обслуживания на стороне сервера. Я попытался просмотреть ссылку на класс QUrl, но ни один из доступных методов не дал желаемого результата.