Hi there,
I tried to create a post request with QWebEngineHttpRequest to load it in QWebEngineView but this is not working as expected unfortunately.
Here is the goal. I have currently an simple http get request, and I would like to transform it in a post request, the server allow both request then this should be not a problem of the server but from my request.
Here is an example. First I build my request to be a get (this works but is unsecured).
// Create the base URL
this->apiUrl.setScheme("https");
this->apiUrl.setHost("www.domainname.com");
this->apiUrl.setPath("/path/of/the/api/end/point/");
// Create the query
qurlqr.addQueryItem("Class", "Patient");
qurlqr.addQueryItem("Method", "CreateOrder");
qurlqr.addQueryItem("LoginName", login);
qurlqr.addQueryItem("Password", password);
...
qurlqr.addQueryItem("patCountry", "CH");
qurlqr.addQueryItem("treatmentCode", "");
this->apiUrl.setQuery(qurlqr);
// Create an engine view widget
QWebEngineView *webView = new QWebEngineView(this);
webView->load(this->apiUrl);
This code works and do a GET request. Now I would like to transform this query in a post request inside my QwebEngineView, to do that I wanna create a QWebEngineHttpRequest .
Then here is the code to transform this :
// Create the base URL
this->apiUrl.setScheme("https");
this->apiUrl.setHost("www.domainname.com");
this->apiUrl.setPath("/path/of/the/api/end/point/");
QWebEngineHttpRequest request = QWebEngineHttpRequest();
request.setUrl(this->apiUrl);
request.setMethod(QWebEngineHttpRequest::Post);
request.setHeader(QByteArray("Content-Type"), QByteArray("application/x-wwwform-urlencoded"));
// Create the query
qurlqr.addQueryItem("Class", "Patient");
qurlqr.addQueryItem("Method", "CreateOrder");
qurlqr.addQueryItem("LoginName", login);
qurlqr.addQueryItem("Password", password);
...
qurlqr.addQueryItem("patCountry", "CH");
qurlqr.addQueryItem("treatmentCode", "");
// Convert Query URL to QByteArray and set post data to request
QByteArray postData = qurlqr.toString(QUrl::FullyEncoded).toUtf8();
request.setPostData(postData);
QWebEngineView *webView = new QWebEngineView(this);
webView->load(request);
But unfortunately this is not working, I think my problem is comming from postData but not sure. Do you have any advice to help me ? Any help will be appreciate.