QT学习笔记之QT使用http协议
写在前面
http协议在软件设计的过程中占有很重要的地位,在一般的面试中也会经常被问到,下面简单介绍http协议的使用:
使用方法
首先贴上代码:
毕竟本人才刚开始学,下面的注视只是自己的一些拙见,日后学的深入会逐渐纠正。
QNetworkAccessManager *manager = new QNetworkAccessManager();//实例化类 可以理解为整个http响应的控制者
QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url)));//实例化类 用于确定响应的地址
QByteArray responseData;//定义数据
QEventLoop eventLoop;
connect(manager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));//信号槽
eventLoop.exec(); //block until finish
responseData = reply->readAll();//读取返回数据
return QString(responseData);//返回数据
有了这些基础的知识就可以完成这部分的代码了:
HTTP_Test01::HTTP_Test01(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
this->setWindowTitle("Http 下载器");
manager = new QNetworkAccessManager(this);
this->connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(showTextFromWeb(QNetworkReply*))); //QNetworkAccessManager请求完数据时开始响应
this->connect(ui.showWeb, SIGNAL(clicked()), this, SLOT(showText())); //用于动态的确认需要响应的网址
}
void HTTP_Test01::showText()
{
QString url = ui.URL_EditText->text();
reply = manager->get(QNetworkRequest(QUrl(url)));
}
void HTTP_Test01::showTextFromWeb(QNetworkReply* reply)
{
QString text(reply->readAll());
ui.webText->setText(text);
reply->deleteLater();
}
效果如图:
不积跬步无以至千里,不积小流无以成江河。