qt 网络库使用介绍

在.pro文件中,要手动添加network模块:QT += network

有三个核心类,

  • QNetworkAccessManager: 发送get或者post请求。

    用get方法或者post方法发送get/post请求

    参数是QNetworkRequest,返回值是QNetworkReply

  • QNetworkRequest:包装请求信息

    用setHeader方法设置请求的header

    用setUrl方法设置服务器的IP和端口

  • QNetworkReply:包装接服务器返回的信息。

    注意,用rep->readAll();得到返回的数据;用rep->readAll(key);得到返回的header信息

一个小例子,给百度发一个get请求。

注意事项:

1,设置http请求头UserAgent,目的是伪装成浏览器的发送的http请求。

2,调用get方法后,在等待服务器的返回的过程中,get方法或者post方法是不阻塞的,调用后立即返回。

3,因为get/post方法不阻塞,那怎么才能知道服务器什么时候处理完,返回给客户端呢,监听QNetworkReply里的&QNetworkReply::readyRead信号。

4,qDebug() << 2222;会先于qDebug() << data;被打印出来。原因是get方法不阻塞。

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this); QNetworkAccessManager* mgr = new QNetworkAccessManager(this); QString agent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36";
QNetworkRequest res;
//设置http请求头UserAgent,目的是伪装成浏览器的发送的http请求
res.setHeader(QNetworkRequest::UserAgentHeader, agent);
//设置URL
//res.setUrl(QUrl("http://www.baidu.com:80"));
res.setUrl(QUrl("http://10.210.65.129:80")); //发送http请求,返回的结果放到rep里。
//QNetworkReply* rep = mgr->post(res, "");
QNetworkReply* rep = mgr->get(res); //读服务器返回的数据
connect(rep, &QNetworkReply::readyRead, this, [=](){ //取得服务器回发的header数据
QVariant url = rep->header(QNetworkRequest::LocationHeader);
//服务器回发的数据,但不包括头,头的信息在header里。
QByteArray data = rep->readAll();
qDebug() << data;
qDebug() << url.toString();
}); qDebug() << 2222;
}

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854

qt 网络库使用介绍的更多相关文章

  1. C/C++ 网络库介绍

    C/C++ 网络库介绍 Aggregated List of Libraries(Source Link) Boost.Asio is really good. Asio is also availa ...

  2. Redis网络库源码分析(1)之介绍篇

    一.前言 Redis网络库是一个单线程EPOLL模型的网络库,和Memcached使用的libevent相比,它没有那么庞大,代码一共2000多行,因此比较容易分析.其实网上已经有非常多有关这个网络库 ...

  3. python 标准库和第3方库的介绍

    忘了从哪里来的了~~~~ Tkinter———— Python默认的图形界面接口.Tkinter是一个和Tk接口的模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组.T ...

  4. qt configure参数配置介绍

    ======================================全文是按照./configure -help来翻译的==================================== ...

  5. QT(1)介绍

    Qt官网 Qt官网:https://www.qt.io Qt下载:http://www.qt.io/download Qt所有下载:http://download.qt.io/archive/qt Q ...

  6. Python常用的库简单介绍一下

    Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...

  7. 《Linux多线程服务端编程:使用muduo C++网络库》上市半年重印两次,总印数达到了9000册

    <Linux多线程服务端编程:使用muduo C++网络库>这本书自今年一月上市以来,半年之内已经重印两次(加上首印,一共是三次印刷),总印数达到了9000册,这在技术书里已经算是相当不错 ...

  8. QT共享库的创建与调用(初级)(附:UI界面不能被改变的其中一个原因)

    背景: 最近在做的一个项目其中一部分既是实现PC与下位机的USB通信.windows平台下已经完成,现需移植到linux平台下. 在linux系统中,通过一段时间的工作,设备已被配置成hid类(后续再 ...

  9. 利用百度词典API和Volley网络库开发的android词典应用

     关于百度词典API的说明,地址在这里:百度词典API介绍 关于android网络库Volley的介绍说明,地址在这里:Android网络通信库Volley 首先我们看下大体的界面布局!

随机推荐

  1. Easy User Manager System writeup

    0x01 解题 思路 一个进程用自己的ip去申请拿到code然后进入verify页面,另外一个进程去申请8.8.8.8 步骤 1. 首先注册一个账号 然后用两个不同的浏览器进入Change页面.这里我 ...

  2. Spark中持久化和序列化学习

    一.cache和persisit的对比 -rw-r--r--@ 1 hadoop staff 68M 5 17 07:04 access.log    cache/persitence是 laz ...

  3. nginx 七层负载均衡

    [tcp] nginx 七层负载均衡 nginx负载均衡概述 当我们的Web服务器直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台Web服务器组成集群,前端使用Nginx负载均衡, ...

  4. maven配置本地和远程仓库

    maven项目中我们不用挨个导入jar包,那这些Jar包从哪里来呢?当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载.首先,Maven 将从本地资源库 ...

  5. 如何获取表增长历史记录信息? (Doc ID 1395195.1)

    How To Get Table Growth History Information? (Doc ID 1395195.1) APPLIES TO: Oracle Database - Enterp ...

  6. 201871010118-唐敬博《面向对象程序设计(java)》第一周学习总结

    博文正文开头格式:(3分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/p/11435127.html 这个作业的要求在哪里 https:/ ...

  7. misc-4-1

    记录一题盲水印的misc,缅怀昨天高校运维挑战赛的twocats翻车车 下载下来binwalk一下 然后在里面发现了压缩包,并找到两长一模一样的图片,还要tip.txt Although two da ...

  8. AcWing 154. 滑动窗口 单调队列

    地址 https://www.acwing.com/problem/content/description/156/ 输入格式 输入包含两行. 第一行包含两个整数n和k,分别代表数组长度和滑动窗口的长 ...

  9. C++并发编程实战

    第1章 你好,C++并发世界 第2章 管理线程 第3章 在线程间数据共享 第4章 同步并发操作 第5章 C++内存模型和原子类型操作 第6章 设计基于锁的并发数据结构 第7章 设计无锁的并发数据结构 ...

  10. 内核态发生非法地址访问是否会panic

    https://mp.weixin.qq.com/s?__biz=MzAwMDUwNDgxOA==&mid=2652663676&idx=1&sn=b18ab57322594e ...