Qt 5——使用http协议通信

简介: Qt 5——使用http协议通信

Qt中使用http协议通信


Qt中如何使用http协议通信


  • QNetworkAccessManager类允许应用程序发送网络请求和接收网络应答。


  • Network Access API都是围绕着一个QNetworkAccessManager对象构造的,这个对象包含着发送请求的一些通用配置和设置。它包含着代理和缓存的配置,以及和这些事物相关的一些信号,并且应答信号可以作为我们检测一个网络操作的进度。


  • 一个QNetworkAccessManager对于一整个Qt应用程序来说已经足够了!


  • 一旦一个QNetworkAccessManager对象被创建了,那么应用程序就可以使用它在网络上发送请求。


  • 它提供了一组标准的函数,可以承载网络请求和一些可选的数据,并且每一个请求返回一个QNetworkReply对象。该返回的对象包含着返回的请求应带的所有数据。


QNetworkAccessManager 类


  • QNetworkAccessManager将会把它受到的请求排队。并行执行的请求数量是依赖于协议的。


  • 目前,对于桌面平台的HTTP协议,对于一个主机/端口的组合,可6个请求并行执行。


  • 发送头请求


get


post


QNetworkRequest类


Network Access API的一部分,并且这个类包含着在网络上发送请求的必要信息。


  • 它包含了一个URL和一些可以用来修改请求的附加信息。


  • 将需要发送的http请求协议初始化到该类中


请求头


数据


url


QNetworkReply 类


QNetworkAccessManage返回的一个对象, 请求完成之后, 需要删除该对象


  • 通过该对象, 读server返回的 数据


readyRead()


finished();


readall()


代码示例


    // 需要一个mamager对象, 做get ,post
    QNetworkAccessManager* manager = new QNetworkAccessManager(this);
    // 准备工作 - 初始化一个QNetworkRequest
    QNetworkRequest res;
    // 设置头 - 浏览器
    res.setHeader(QNetworkRequest::UserAgentHeader,
                  "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36");
    res.setUrl(QUrl("http://www.baidu.com:80"));
    QNetworkReply* reply = manager->get(res);
    // 读服务器回写的数据
    connect(reply, &QNetworkReply::readyRead, this, [=]()
    {
        // 读数据
        QVariant str = reply->header(QNetworkRequest::LocationHeader);
        // 数据 - 不包括头
        QByteArray data = reply->readAll();
        qDebug() << data;
        qDebug() << str.toString();
    });
相关文章
|
10天前
|
算法 网络协议 安全
HTTP/2 协议的缺点是什么?
HTTP/2 协议的缺点是什么?
|
10天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
44 3
|
21天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
49 13
|
14天前
|
传感器 缓存 网络协议
CoAP 协议与 HTTP 协议的区别
CoAP(Constrained Application Protocol)协议是为资源受限的设备设计的轻量级协议,适用于物联网场景。相比HTTP,CoAP具有低功耗、低带宽占用和简单易实现的特点,支持多播通信和无连接的交互模式。
|
19天前
|
缓存
HTTP 报文解构:深入剖析 HTTP 通信的核心要素
【10月更文挑战第21天】随着网络技术的不断发展和演进,HTTP 报文的形式和功能也可能会发生变化,但对其基本解构的理解始终是掌握 HTTP 通信的关键所在。无论是在传统的 Web 应用中,还是在新兴的网络技术领域,对 HTTP 报文的深入认识都将为我们带来更多的机遇和挑战。
|
19天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
19天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
19天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
21天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
23天前
|
网络协议 前端开发 API
HTTP 和 TCP 协议的应用场景有哪些不同
【10月更文挑战第25天】HTTP(超文本传输协议)和 TCP(传输控制协议)处于网络协议栈的不同层次,各自具有独特的功能和特点,因此它们的应用场景也存在明显的差异。

热门文章

最新文章

下一篇
无影云桌面