03 QT écrit le client HTTP

QT écrit le client HTTP

1. Cours connexes

● QNetworkAccessManager 【Envoyer une requête réseau et recevoir une réponse】
● QNetworkReply 【Réponse de service】
● QNetworkRequest 【Requête de service】
● QUrl
Remarque : Pour utiliser ces classes, vous devez ajouter le module réseau au fichier pro. QT += réseau

2.Client HTTP

#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QNetworkReply>

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
    
    
    ui->setupUi(this);

    //构建一个manager对象
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);

    //manager具有异步API,当http请求完成后,会通过finished信号进行通知
    connect(manager, &QNetworkAccessManager::finished, this, [=](QNetworkReply *reply) {
    
    
        if(reply->error()!=QNetworkReply::NoError) {
    
    
            //处理中的错误信息
            qDebug()<<"reply error:"<<reply->errorString();
        }
        else {
    
    
            //请求方式
            qDebug()<<"operation:"<<reply->operation();
            //状态码
            qDebug()<<"status code:"<<reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
            qDebug()<<"url:"<<reply->url();

            //获取响应信息
            const QByteArray reply_data=reply->readAll();
            qDebug()<<"read all:"<<QString(reply_data).toUtf8();
        }

        reply->deleteLater();
    });

    //发送异步get请求
    manager->get(QNetworkRequest(QUrl("https://www.baidu.com/")));
}

Je suppose que tu aimes

Origine blog.csdn.net/pointerz_zyz/article/details/128855623
conseillé
Classement