Я пытаюсь написать простое приложение, которое запустит браузер и отправит его URL
на основе ввода пользователя.
QDesktopServices::openUrl(QUrl(url));
Тем не менее, я хотел бы передать переменные вместе с любым URL
они отправляют, используя POST
,
За GET
все, что мне нужно сделать, это просто вставить значения в URL
строка, но как мне добавить POST
переменные ?.
Благодарю.
bool QDesktopServices :: openUrl (const QUrl & url) [статические]
Открывает указанный URL в соответствующем веб-браузере для окружения рабочего стола пользователя и возвращает true в случае успеха; в противном случае возвращает false.
Если URL является ссылкой на локальный файл (т. Е. Схема URL является «файлом»), то он будет открыт с помощью подходящего приложения вместо веб-браузера.
Короткий ответ: он не был предназначен для управления сетью. Для этого уже можно было бы использовать QNetworkAccessManager
, Это был просто удобный способ добавить поддержку для открытия URL, так как в противном случае это потребовало бы совсем немного работы. Не было никаких дальнейших планов, чтобы это скопировать QtNetwork
ближе.
Таким образом, я бы предложил использовать что-то вроде этого, чтобы добиться работы с методами post, указав ваш URL:
QUrlQuery urlQuery;
urlQuery.addQueryItem("param1", "value1");
urlQuery.addQueryItem("param2", "value2");
QUrl url = QUrl("http://foo.com");
QNetworkRequest networkRequest(url);
networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
networkManager->post(networkRequest, urlQuery.toString(QUrl::FullyEncoded).toUtf8());
QDesktopServices не был разработан для этого, я бы предложил сделать ваш HTTP POST, используя QNetworkAccessManager::post
вместо.
Затем вы можете взять некоторую информацию из ответа HTTP, чтобы открыть браузер рабочего стола, если это необходимо.