1.相关类
● QNetworkAccessManager 【发送网络请求并接收响应】
● QNetworkReply 【服务响应】
● QNetworkRequest 【服务请求】
● QUrl
注意:要使用这些类,需要在pro文件中加入network模块。QT += network
2.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/")));
}