QNetworkAccessManager(网络访问管理器)

来源:互联网 发布:kmp算法next0 编辑:程序博客网 时间:2024/06/04 18:17
QNetworkAccessManager(网络访问管理器)

简介:

QNetworkAccessManager 是一个允许引用程序发送网络请求和接收答复的类

QNetworkAccessManager 支持http编程,ftp编程等

QNetworkAccessManager 支持GET,POST等请求


QNetworkAccessManager 中的所有访问都是异步的

QNetworkRequest 是一个要发送网络请求的类。其中包含请求的数据

QNetworkReply 是网络请求发送后,返回的答复类。其中包含答复信息等。

使用:

想要使用QNetworkAccessManager。最初始的步骤是从.pro文件添加network。以便寻找相关类

QT += core gui network

然后呢。在qt的头文件里声明QNetworkAccessManager指针

QNetworkAccessManager * manager;

在窗口构造函数中,把QNetworkAccessManager指针new一下

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)

ui->setupUi(this); 
manager = new QNetworkAccessManager(this);
}

好了。manager算是掏出来了。接下来我们怎么办呢?

别急,

我们声明一个槽函数onFinished(),用来判断是否下载完了

void Widget::onFinished(QNetworkReply * reply)//reply用于接收消息
{
qDebug() << "Your thing had finished downloading.";
}

要使用qDebug,得引用一下

#include "QDebug"

最后再来连接信号槽一下

connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(onFinished(QNetworkReply *)));

好了 准备工作做好了。让我们再做其他的事情

我们试着下载一个页面看看。这个下载需要GET请求

比如说我们想下载一个百度的页面

manager->get(QNetworkRequest(QUrl("http://www.baidu.com/")));

由于整个过程是异步的。你可以随便操作窗口内的其他东西~
0 0
原创粉丝点击