在Qt中,可以使用QNetworkAccessManager类来发送HTTP的GET和POST请求。

发送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请求的示例代码如下:

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请求

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

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