本文主要是介绍【C++】-QT网络编程-【http】-007,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 【http】请求
#ifndef MYWIDGET_H
#define MYWIDGET_H#include <QWidget>
class QNetworkAccessManager;//前向引用声明namespace Ui {
class MyWidget;
}class MyWidget : public QWidget
{Q_OBJECTpublic:explicit MyWidget(QWidget *parent = 0);~MyWidget();private slots:void on_pushButton_clicked();private:Ui::MyWidget *ui;QNetworkAccessManager *nam;
};#endif // MYWIDGET_H#include "MyWidget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MyWidget w;w.show();return a.exec();
}#include "MyWidget.h"
#include "ui_MyWidget.h"
#include <QNetworkRequest>
#include <QNetworkAccessManager>//头文件前向引用声明,源文件包含头文件MyWidget::MyWidget(QWidget *parent) :QWidget(parent),ui(new Ui::MyWidget)
{ui->setupUi(this);/* 创建网络访问管理器类对象空间*/nam=new QNetworkAccessManager(this);
}MyWidget::~MyWidget()
{delete ui;
}/* 3 编写【get】按钮槽函数*/
void MyWidget::on_pushButton_clicked()
{/* 3.1 */QUrl url(ui->lineEdit->text());/* 3.2 */QNetworkRequest request(url);/* 3.3 */nam->get(request);
}
2 【http】响应
#ifndef MYWIDGET_H
#define MYWIDGET_H#include <QWidget>
class QNetworkAccessManager;//前向引用声明
class QNetworkReply;namespace Ui {
class MyWidget;
}class MyWidget : public QWidget
{Q_OBJECTpublic:explicit MyWidget(QWidget *parent = 0);~MyWidget();private slots:void on_pushButton_clicked();/* 4.2 定义槽函数*/void onReadyRead();private:Ui::MyWidget *ui;/* 添加网络访问管理器类成员对象*/QNetworkAccessManager *nam;/* 添加网络请求类成员对象*/QNetworkReply *reply;
};#endif // MYWIDGET_H#include "MyWidget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MyWidget w;w.show();return a.exec();
}#include "MyWidget.h"
#include "ui_MyWidget.h"
#include <QNetworkRequest>
#include <QNetworkAccessManager>//头文件前向引用声明,源文件包含头文件
#include <QNetworkReply>MyWidget::MyWidget(QWidget *parent) :QWidget(parent),ui(new Ui::MyWidget)
{ui->setupUi(this);/* 创建网络访问管理器类对象空间*/nam=new QNetworkAccessManager(this);
}MyWidget::~MyWidget()
{delete ui;
}/* 3 编写【get】按钮槽函数*/
void MyWidget::on_pushButton_clicked()
{/* 3.1 创建统一资源定位符类【QUrl】对象并通过字符串类【QSting】对象初始化*/QUrl url(ui->lineEdit->text());/* 3.2 创建网络请求类【QNetworkRequest】对象并通过统一资源定位符类【QUrl】对象初始化*/QNetworkRequest request(url);
#if 0/* 3.3 网络访问管理器类对象获取网络访问请求*/nam->get(request);
#endif/* 4.1 接收请求*/
// QNetworkReply *reply=nam->get(request);reply=nam->get(request);/* 4.3 */connect(reply,&QNetworkReply::readyRead,this,&MyWidget::onReadyRead);
}void MyWidget::onReadyRead()
{/* 4.4 读响应报文内容->将读到的内容显示在纯文本编辑器*/ui->plainTextEdit->appendPlainText(reply->readAll());
}
这篇关于【C++】-QT网络编程-【http】-007的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!