Как сделать простой Http-запрос, используя Qt? Http-запрос содержит процентную кодировку в URL - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть один URL-адрес, как показано ниже:

QUrl url("https://example.com/send/?apikey=somekey&numbers=mobile&sender=XYZ&message=0000%20is%20your%20OTP%20to%20authenticate%20with%20Server:%20abc.com")

Теперь я вызываю этот URL-адрес, как показано ниже:

QNetworkRequest networkRequest(url);
QNetworkAccessManager manager;
QEventLoop event;
QObject::connect(&manager, &QNetworkAccessManager::finished, &event, &QEventLoop::quit);
auto* const pResponse = manager.get(networkRequest);
event.exec();
pResponse->deleteLater();
return pResponse->readAll();

Однако вызов не удался. После отладки я обнаружил, что часть "& message" из URL, которая является

&message=0000%20is%20your%20OTP%20to%20authenticate%20with%20Server:%20abc.com

, становится

&message=0000 is your OTP to authenticate with Server: abc.com

Вероятно, это является причиной сбоя. Если я скопирую и вставлю URL-адрес в браузер, он будет работать нормально.

Как сделать этот запрос успешным?
Хотя я и написал код, поскольку это блокирующий вызов, на самом деле мое требование - просто вызвать URL выше.

Обновление : эта проблема устранена сама собой. Веб-сайт, где я делал вызов API, следовал определенному шаблону. Мне не хватало полной остановки "." в конце. После добавления это начало работать.

...