QNetworkRequest类的简单介绍和使用
简介
QNetworkRequest类属于QT中的网络模块,一般与QNetworkAccessManager类协同使用。
QNetworkAccessManager类是QT中网络模块的核心组成部分,其主要功能是管理http请求和收到的回复。如果说QNetworkRequest类是对请求时设置数据的封装,那么QNetworkAccessManager类就是对操作指令的封装。
封装请求的信息
当客户端在向服务端发送get、post请求的时候,需要使用QNetworkRequest类来封装所有发送需要的信息,这包括:请求的URL、请求头、请求优先级等。
当你想设置请求头的时候,你可以使用setHeader
函数,例如:
request.setHearder(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));//其中request为实例化的对象
。
当你想设置url的时候,你可以使用setUrl
函数,例如:
QString url = ""; request.setUrl(QUrl(url));
QNetworkRequest对象被QNetworkAccessManager对象使用
当QNetworkRequest类的对象封装完成后(假设request为一个实例化后的对象),接下来的操作则是被QNetworkAccessManager对象的get函数或者post函数作为参数使用。以post函数为例:
accessManager.post(request, dataArray);//其中dataArray封装了要发送的数据
其他
- 当请求的网址是以https开头的时候,QNetworkRequest提供了有关SSL设置的方法
- QNetworkAccessManager类基于异步事件实现,当执行完post/get函数后,程序会继续执行,是非阻塞的。