Qt HTTP GET & POST 请求示例 | 使用 QNetworkAccessManager 发送网络请求
在 Qt 中,可以使用 QNetworkAccessManager 类来发送 HTTP 的 GET 和 POST 请求。
发送 GET 请求
以下示例代码演示了如何发送一个 GET 请求:
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(QUrl('http://www.example.com'));
QNetworkReply *reply = manager->get(request);
connect(reply, &QNetworkReply::finished, [=]() {
if (reply->error() == QNetworkReply::NoError) {
// 请求成功
QByteArray data = reply->readAll();
// 处理返回的数据
} else {
// 请求失败
QString error = reply->errorString();
// 处理错误
}
reply->deleteLater();
});
发送 POST 请求
以下示例代码演示了如何发送一个 POST 请求:
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(QUrl('http://www.example.com'));
request.setHeader(QNetworkRequest::ContentTypeHeader, 'application/x-www-form-urlencoded');
QByteArray postData;
postData.append('param1=value1¶m2=value2');
QNetworkReply *reply = manager->post(request, postData);
connect(reply, &QNetworkReply::finished, [=]() {
if (reply->error() == QNetworkReply::NoError) {
// 请求成功
QByteArray data = reply->readAll();
// 处理返回的数据
} else {
// 请求失败
QString error = reply->errorString();
// 处理错误
}
reply->deleteLater();
});
在发送 POST 请求时,需要设置请求头的 Content-Type 为 'application/x-www-form-urlencoded',并将参数以字节数组的形式传递给 post() 函数。
原文地址: https://www.cveoy.top/t/topic/qjsH 著作权归作者所有。请勿转载和采集!