I need to make an HTTP POST request to a server from my Qt application.
The POST request would contain a list of named values, i.e. key/value pairs. They will be mostly alphanumeric strings, but can contain special characters such as quotes, spaces, etc.
What is the canonical way of doing this type of POST request in Qt?
解决方案QUrl params;
params.addQueryItem("key1", "value1");
params.addQueryItem("key2", "value2");
QUrl resource("http://server.com/form.php");
QNetworkAccessManager* manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(handleEndOfRequest(QNetworkReply*)));
QNetworkRequest request(resource);
//Force Content-Type header
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
manager->post(request, params.encodedQuery());
This code assumes that your current object is a QObject (passed as a parent for QNeworkAccessManager and slots declaration)