【Qt-11】http通信(Get同步收发)

2023-11-08

【Qt-9】HTTP请求(post方式)_WXG1011的博客-CSDN博客

【QT-6】QWebApp服务器搭建及使用_qtwebapp_WXG1011的博客-CSDN博客

写在前面:在上面两篇博文的基础上,继续迭代功能。

上面两篇博客已实现QWebApp服务器搭建、http通信发送请求及接收响应数据等功能。下面实现多层http通信。

 采用异步接收响应数据时一直报无法读取内存的错误,故采用同步接收响应数据的方式。这里http请求方式采用Get形式。

伪代码如下:

void MeasurementController::PostRequestM(QString url)
{
	//http请求
	QNetworkRequest request1;
	QNetworkAccessManager nam;
	//connect(&nam, &QNetworkAccessManager::finished, this, &MeasurementController::receivePostReply);

	qDebug() << "request data!";
	request1.setUrl(QUrl(url));    //实时请求网址
	qDebug() << "request end!";
	//request1.setUrl(QUrl("http://10.1.101.195:8085/measurement"));    //实时请求网址

	//请求头token设置
	/*request1.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=utf-8"));
	QString token = "xxxxxxxxxxxxxxxxxxxxxxxx";
	QString token_headerData = token;
	request1.setRawHeader("token", token_headerData.toLocal8Bit());*/

	//QNetworkReply* reply = nam.post(request1, byte_array);        //post请求头+传输的数据
	QNetworkReply* reply = nam.get(request1);        //get请求头


	
	//开启事件循环,直到请求完成
	QEventLoop loop;
	connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
	//connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
	loop.exec();

	QString strMessage = "";//错误信息
	QString strResult = "";//http响应
	QByteArray array;
	if (reply->isFinished())
	{
		if (reply->error() == QNetworkReply::NoError)//正常结束,读取响应数据
		{
			strResult = reply->readAll();
			qDebug() << strResult;
			res = strResult.toUtf8();
		}
		else//异常结束,比如不存在的http服务器,错误信息:Connection refused
		{
		}
	}
	else//超时,错误信息:Operation canceled
	{
		disconnect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
		reply->abort();
		qDebug() << "[" << __FILE__ << "]" << __LINE__ << __FUNCTION__ << " timeout";
	}

	QNetworkReply::NetworkError e = reply->error();
	if (e)
	{
		strMessage = reply->errorString();
	}
	reply->deleteLater();
}

 参考链接 Qt发起http请求,get和post方式,并接收响应数据_qt发送http请求_架相的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Qt-11】http通信(Get同步收发) 的相关文章

  • 使用 HTML 表单时如何在 HTTP 请求正文中发送数据?

    HTTP 规范规定 POST 请求可以包含任意数据体 An HTML form元素可以 POST 到 URL 并且可能包含input元素 但那些input元素变成查询字符串 我怎样才能得到一个form还可以在按下提交按钮时发送的 HTTP
  • Express.js在控制器中获取http方法

    我正在构建一个注册表单 本地护照作为身份验证 表单作为表单助手 因为注册只知道 GET 和 POST 我想在一个函数中完成整个处理 换句话说 我正在寻找类似的东西 exports register function req res if r
  • 如何让 NSURLRequest 获取 Twitter 请求令牌?

    我正在尝试使用以下代码从 Twitter 获取请求令牌 NSMutableURLRequest mURLRequest NSMutableURLRequest alloc initWithURL NSURL URLWithString ht
  • Non-Authoritative-Reason 标头字段 [HTTP]

    当我有响应标头时 我很难找出它的含义Non Authoritative Reason HSTS 我搜索了很多 但只是想出了一些关于 HSTS 从 HTTP 重定向到 HTTPS 的解释 有人能帮我吗 顺便说一句 我正在使用 Chrome T
  • 反向代理受 NTLM 保护的网站

    如何将请求代理到受 NTLM 保护的网站 例如团队基金会 and 共享点 我不断得到401 身份验证错误 根据这篇 Microsoft TechNet 文章 https www microsoft com technet prodtechn
  • 是否可以在ajax get请求中获取页面的一部分?

    我知道我们可以在向服务器发出 GET 请求时获取整个页面 但是如果我只对该页面上的一个特定 div 感兴趣 或者更准确地说对其内容感兴趣 该怎么办 这里唯一的选择是获取整个页面 例如使用 jquery find 从中获取 div 内容吗 或
  • ReverseProxy取决于golang中的request.Body

    我想构建一个 http 反向代理 它检查 HTTP 主体 然后将 HTTP 请求发送到它的上游服务器 你怎么能在 Go 中做到这一点 初始尝试 如下 失败 因为 ReverseProxy 复制传入请求 修改它并发送 但正文已被读取 func
  • 减少1000张图片的HTTP请求?

    我知道这个问题可能听起来有点疯狂 但我想也许有人会想出一个聪明的主意 假设您在一个 HTML 页面上有 1000 个缩略图 图像大小约为5 10 kb 有没有办法在单个请求中加载所有图像 以某种方式将所有图像压缩到一个文件中 或者您对该主题
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • 除了 GET 和 POST 之外,如何从浏览器向 RESTful 应用程序发送任何内容?

    我没有得到 RESTful 的东西 是的 我知道如何从浏览器向我的应用程序发送 GET 请求 这是通过 URL 链接 a href user someone 并且还可以通过form方法发送POST请求 a
  • 通过 HTTPS 加载页面但请求不安全的 XMLHttpRequest 端点

    我有一个页面 上面有一些 D3 javascript 该页面位于 HTTPS 网站内 但证书是自签名的 当我加载页面时 我的 D3 可视化效果不显示 并且出现错误 混合内容 页面位于 https integration jsite com
  • 将 HttpApi 与 I/O 完成端口结合使用

    我刚刚偶然发现了微软的HTTP 服务器 API http msdn microsoft com en us library aa364510 28v vs 85 29 aspx 简介中写道 HTTP 服务器 API 使应用程序能够通过 HT
  • 如何确定服务器是否支持 Range 标头?

    我一直在尝试使用 Range 标头值从特定点流式传输音频 但我总是从一开始就得到歌曲 我正在通过程序执行此操作 因此不确定问题是否出在我的代码中或服务器上 如何确定服务器是否支持 Range 标头参数 Thanks 方式HTTP规范 htt
  • 如何增加asp classic的请求接受限制

    我从java小程序向asp classic发送post请求 我在此请求中发送非常大的数据 即 csv 数据 当此请求中的字符数增加并超过 138000 时 asp 不接受该请求 java 小程序给出 500 错误 所以有人可以告诉我如何才能
  • AJAX 发送数据到 Node.js 服务器

    我尝试使用 AJAX 将数据发送到 Node js 服务器 但不断遇到同样的问题 即接收问题 这是客户端 JavaScript AJAX 代码 var objects function return new XMLHttpRequest f
  • 诸如用于测试 HTTP 请求的虚拟 REST 服务器之类的东西? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在四处寻找 但找不到任何这样的网站 我想知道是否有一些虚拟服务器可以响应测试 GET 请求并返回
  • $http.get() 与 JSON 数据

    我正在编写一个服务器应用程序 并希望客户端使用正文中的数据来参数化我的 GET 方法 如下所示 http v GET http localhost 3000 url text 123 foo bar GET url HTTP 1 1 Acc
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何
  • 服务器响应中的“连接:保持活动状态”

    我正在尝试建立从 Silverlight 应用程序到 Apache 服务器托管的 PHP 页面的 HTTP 持久连接 即无需为每个 HTTP 请求创建新的 TCP 连接 为此 我需要网络服务器发送其 HTTP 响应 并将 Connectio
  • WCF WebHttp 混合身份验证(基本和匿名)

    所有这些都与 WebHttp 绑定有关 托管在自定义服务主机中 IIS 目前不是一个选项 我已经实现了自定义 UserNamePasswordValidator 和自定义 IAuthorizationPolicy 当我将端点的绑定配置为使用

随机推荐

  • securecrt破解版64位

    securecrt 破解版是一款支持SSH1和SSH2的终端仿真程序 这个程序能够在windows系统中登陆UNIX或Linux的服务器主机并且还能进行管理设置 是一款非常强大的ssh传输软件 是用于连接运行包括Windows UNIX和V
  • 激发新动能 多地发力数字经济

    发力数字经济 地方正紧锣密鼓展开新一轮规划部署 近期 云南 陕西 江苏 江西等多地出台相关举措 明确未来几年数字经济核心产业发展目标 并进一步完善资金 人才等配套政策 相关专家表示 发展数字经济是把握新一轮科技革命和产业变革新机遇的战略选择
  • 学习日记——时钟温湿计_Demo

    程序例程 如果成功接入则进入SNTP初始化 如果连接时候wifi错误或者是密码错误进入微信智能配网 以上步骤和微信智能配网相同 增加了SNTP初始化这一步 配网成功也执行SNTP初始化 SNTP初始化执行完毕之后每隔一秒种获取网络时间 并且
  • 【解决】控制台解析preview和response数据不一致,并使用transformResponse修改响应数据

    问题 控制台解析preview和response数据不一致 比如 id 1246000001606460673 会被默认解析成 id 1246000001606460700 在Preview 预览功能 中 控制台会把发送过来的json数据自
  • C++ 性能优化篇四《优化字符串的使用:案例研究》

    只有少数人才能触摸到魔法琴弦 string 可是聒噪的名声却企图击败他们 悲哀于那些从来都不歌唱的人们 死亡时却要带着他们的音乐陪葬 奥利弗 温德尔 霍姆斯 1 无声 1858 C 的 std string 类模板是 C 标 准 库 中 使
  • 转贴:华为 SmartAX MT800 固件升级(升级为VC100R004C01B010)并开启路由全过程(2004年8月7日更新) [精华]

    http bbs pcshow net cgi bin threaded show cgi tid 350483777 h 1 bpg 1 age 1 请认真的看上面的文章 如果软件版本低的话 要升级 1为升级工具 2为升级的软件包 升级之
  • 正式发布!中国首个LF Edge捐赠项目Baetyl 2.2发布

    Baetyl作为中国首个加入LFEdge基金会的边缘计算项目 自2019年由百度捐赠以来 在开放中立的社区环境中得到不断的支持与发展 在众多活跃的贡献者的努力下 Baetyl实现了更多具有挑战性的功能 正式升级为Baetyl v2 2版本
  • 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。

    定义栈的数据结构 请在该类型中实现一个能够得到校的最小元素的min函数 在该栈中 调用pop push 及min的时间复杂度都是0 1 param
  • pyqt5 QGraphicsView内缩放显示的图像

    from PyQt5 QtWidgets import QApplication QGraphicsView QGraphicsScene QGraphicsItem QGraphicsPixmapItem from PyQt5 QtCor
  • log4j-slf4j-impl cannot be present with log4j-to-slf4j 之类的问题,解决maven依赖冲突

    如题所示 本文主要用户解决maven的依赖冲突 并提供通用的解决方案 先放错误 SLF4J Class path contains multiple SLF4J bindings SLF4J Found binding in jar fil
  • 【Android】Room新手快速入门

    Room是什么 Room是Google推出的一款android平台上的ORM数据库框架 它类似于GreenDao 但比GreenDao更加简洁高效 是官方推荐使用的数据库框架 引入Gradle依赖 Room api androidx roo
  • 私有仓库修改docker.json报错

    我试了目前网上所有方法都不行自己摸索了很久 提供一种解决方案 找到你的阿里云镜像加速器 重新把配置阿里云镜像的那几行linux代码 再执行一次 然后紧接着马上去 etc docker daemon json加你的私有仓库http配置 再重启
  • NUC980开源项目31-can总线调试

    上面是我的微信和QQ群 欢迎新朋友的加入 以CAN0为例 在内核中配置 文件系统支持 重新烧录 启动 正常挂载 CAN终端测试 查看CAN接口 root myir ls sys class net can0 eth0 lo usb0 wla
  • docker部署fisco bcos区块链浏览器

    首先你要搭建一个myql数据库 理论上mariadb也支持 并创建一个数据库 再建个账号给区块链浏览器使用 如 CREATE DATABASE fisco CHARACTER SET utf8mb4 COLLATE utf8mb4 bin
  • [Excel VBA]如何自动关闭MsgBox?

    本文译至 http itpro nikkeibp co jp atcl column 15 090100207 090700150 VBA的MsgBox函数 直到用户点击按钮前都会继续显示 经过指定时间后自动关闭的MsgBox 可以使用Wi
  • 中高级程序员需求技能

    初级 中级 1 团队精神和协作能力 把它作为基本素质 并不是不重要 恰恰相反 这是程序员应该具备的最基本的 也是最重要的安身立命之本 把高水平程序员说成独行侠的都是在呓语 任何个人的力量都是有限的 即便如linus这样的天才 也需要通过组成
  • Unity发送Post请求

    using System Collections using System Text using UnityEngine using UnityEngine Networking public class PostMsg MonoBehav
  • CSDN竞赛第34期题解

    CSDN竞赛第34期题解 1 题目名称 最优利润值 你在读的经营课程上 老师布置了一道作业 在一家公司的日常运营中 是会对一些商品的价格走势根据一些经验和数据 进行预估 并据此进行决策 例如 假设某商品每天的价格都有可能变动 我们要做的就是
  • 从URL取值传给后端

    从URL传值给后端 http 127 0 0 1 8080 blog content html id 8 点击浏览文章详情 跳转至详情页面 从 url 中拿出文章 id 传给后端 首先拿到url 然后判断是否有值 从问号后面取值 param
  • 【Qt-11】http通信(Get同步收发)

    Qt 9 HTTP请求 post方式 WXG1011的博客 CSDN博客 QT 6 QWebApp服务器搭建及使用 qtwebapp WXG1011的博客 CSDN博客 写在前面 在上面两篇博文的基础上 继续迭代功能 上面两篇博客已实现QW