application/x-www-form-urlencoded。
示例1:
QNetworkAccessManager* pNetManager = new QNetworkAccessManager;
QUrl url("https://xxxxxxx");
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QUrlQuery postData;
postData.addQueryItem("参数名1", " 参数值1");
postData.addQueryItem("参数名2", "参数值2");
QString strTest = postData.toString(QUrl::FullyEncoded);
QNetworkReply* reply = pNetManager->post(request, strTest.toUtf8());
connect(pNetManager, &QNetworkAccessManager::finished, this, &MainWindow::LoginFinished);
示例2:
QNetworkAccessManager *m_pHttpMgr = new QNetworkAccessManager();
QUrl url("https://xxxxxxx");
QString data = QString("phone="+userName);
data += QString("&password="+userPwd);
QNetworkRequest request;
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
request.setUrl(url);
QNetworkReply *reply = m_pHttpMgr->post(request, data.toUtf8());
//qDebug() << document.toJson();
//添加事件循环机制,返回后再运行后面的
QEventLoop eventLoop;
connect(m_pHttpMgr, &QNetworkAccessManager::finished, this, &MainWindow::LoginFinished);
application/json。
示例1:
QNetworkAccessManager *m_pHttpMgr = new QNetworkAccessManager();
QNetworkRequest requestInfo;
requestInfo.setUrl(QUrl("https://xxxxxxx"));
requestInfo.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
QJsonObject json;
json.insert("参数名1", "参数值1");
json.insert("参数名2", "参数值2");
json.insert("参数名3", "参数值3");
QJsonDocument document;
document.setObject(json);
QNetworkReply *reply = m_pHttpMgr->post(requestInfo, document.toJson());
connect(m_pHttpMgr, &QNetworkAccessManager::finished, this, &MainWindow::LoginFinished);
multipart/form-data
示例1:
QNetworkAccessManager *m_pHttpMgr = new QNetworkAccessManager();
QNetworkRequest request;
request.setUrl(QUrl("https://xxxxxxx"));
request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
QJsonObject json;
json.insert("参数名1", "参数值1");
json.insert("参数名2", "参数值2");
json.insert("参数名3", "参数值3");
QJsonDocument document;
document.setObject(json);
QNetworkReply* reply = m_pHttpMgr->post(request,document.toJson());
connect(m_pHttpMgr,&QNetworkAccessManager::finished,this,&MainWindow::GetTeaResList_Finished);
示例2:
//读取文件数据
QFileInfo upload_file_info(filePath);
QFile *file = new QFile(filePath);
file->open(QIODevice::ReadOnly);
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart ::FormDataType);
//参数1
QHttpPart formdata_userid;
formdata_userid.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("form-data; name=\"userid\""));
formdata_userid.setBody("11584");
//文件数据
QHttpPart filePart;
filePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/octet-stream"));
filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"file\"; filename=\"" + upload_file_info.fileName() + "\""));
filePart.setBodyDevice(file);
file->setParent(multiPart); //delte file with the multiPart
//填充参数
multiPart->append(formdata_userid);
multiPart->append(filePart);
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkRequest request(QUrl(baseURL + ""));
//request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
QNetworkReply *reply = manager->post(request, multiPart);
multiPart->setParent(reply);
connect(manager, &QNetworkAccessManager::finished, this, &OBSAbout::UploadResLogic_Finished);