在 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&param2=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() 函数。

Qt HTTP GET & POST 请求示例 | 使用 QNetworkAccessManager 发送网络请求

原文地址: https://www.cveoy.top/t/topic/qjsH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录