首页 > 其他分享 >qt http get和post非阻塞时区分调用接口

qt http get和post非阻塞时区分调用接口

时间:2024-03-20 09:30:20浏览次数:32  
标签:slot http qt get url 阻塞 接口 QNetworkReply reply

qt http get和post接口有阻塞和非阻塞两种实现。非阻塞的方式是信号槽关联,在槽函数中实现。

实际项目中多个接口调用的话需要区分调用接口,然后根据接口解析json报文,我分享下我的方法。

通过获取QString url = reply->url().toString(); 可以获取到调用的url,可以根据url来进行区分。

    connect(m_managerget,SIGNAL(finished(QNetworkReply*)), this,
            SLOT(slot_getReplayFinished(QNetworkReply*))); //关联信号和槽

    connect(m_managerpost,SIGNAL(finished(QNetworkReply*)), this,
                     SLOT(slot_postReplayFinished(QNetworkReply*))); //关联信号和槽

void slot_postReplayFinished(QNetworkReply *reply)

{

    int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
    QByteArray bytes = (reply->readAll());
    QString postUrl = reply->url().toString();
    if(statusCode != 200)
    {
       qDebug() << "post replayFinished code:" << statusCode << postUrl << ",data:" <<  bytes;
       return;
    }
    if(postUrl.indexOf("/linkServer") > 0)  //示例接口
    {

       //进行相应解析

    } 

    return;

}

转载请注明出处,这是查了好些资料和经验积累的成果。

标签:slot,http,qt,get,url,阻塞,接口,QNetworkReply,reply
From: https://blog.csdn.net/h892359495/article/details/136863167

相关文章

  • 爬虫实战:从HTTP请求获取数据解析社区
    在过去的实践中,我们通常通过爬取HTML网页来解析并提取所需数据,然而这只是一种方法。另一种更为直接的方式是通过发送HTTP请求来获取数据。考虑到大多数常见服务商的数据都是通过HTTP接口封装的,因此我们今天的讨论主题是如何通过调用接口来获取所需数据。目前来看,大多数的http接口......
  • 01 | Swoole与Go系列教程之HTTP服务的应用
    首发原文链接:Swoole与Go系列教程之HTTP服务的应用大家好,我是码农先森。写在前面PHP曾是Web开发领域佼佼者,随着业务壮大,异步和高并发方面不足显现。Swoole曾经尝试填补空白,但局限性也比较的明显。Go语言的崛起,简洁语法和并发优势吸引大厂使用,吸引了大多数程序员的转......
  • http内网穿透CYarp[开源]
    0前言在物联网领域中,mqtt消息一直是海量设备连接到平台的标配协议,而平台向移动端开放的操作接口往往是http协议,这就要求平台为两种协议作消息一一适配。在某些情况下,这些设备是有操作系统的linux或安卓设备,如果我们换个思路,让这些设备直接提供http协议的操作接口(httpd服务器),平......
  • SQLServer CLR程序集创建Http函数
    设计程序集-SQLServer|MicrosoftLearnMicrosoft.VisualBasic.dllMicrosoft.VisualC.dllmscorlib.dllSystem.dllSystem.Configuration.dllSystem.Core.dllSystem.Data.dllSystem.Data.OracleClient.dllSystem.Data.SqlXml.dllSystem.Deployment.dllSyst......
  • Qt+vs2019+PCL1.12.1+VTK9.1环境搭建中的相关问题
    目录1.VS中双击Ui文件无法打开2.VTK9.0以后在QtDesigner中找不到QVTKWidget组件3.无法打开源文件"QVTKOpenGLNativeWidget.h"4.无法打开源文件"QOpenGLWidget"5.QWidget:MustconstructaQApplicationbeforeaQWidget6.无法打开源文件"QtWidgets/QApplicati......
  • getopt函数/getopt_long函数
    getopt函数/getopt_long函数目录getopt函数/getopt_long函数getoptgetopt_longgetoptgetopt函数是Unix和Linux系统编程中用于解析命令行选项的常用工具。它属于GNUC库的一部分,因此在大多数Linux发行版中都是可用的。下面是一个简单的getopt函数的使用示例:#include......
  • 为什么说HTTPS比HTTP安全? HTTPS是如何保证安全的?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、安全特性在上篇文章中,我们了解到HTTP在通信过程中,存在以下问题:通信使用明文(不加密),内容可能被窃听不验证通信方的身份,因此有可能遭遇伪装而HTTPS的出现正是解决这些问题,HTTPS是建立在SSL之上,其安全性由SSL......
  • 020_若依框架集成MQTT
    目录什么是MQTT什么是EMQMQTTX下载使用下载使用若依集成MQTT拉取若依单应用版本pom.xml导入mqtt依赖yml文件配置mqtt拷贝mqtt相关代码MqttConfigPushCallbackMqttPushClient测试订阅接收消息测试发布消息订阅接收消息存入数据库什么是MQTTMQTT_百度百科什么是EMQEMQX_百度......
  • 手动安装deb包,用dpkg和ap-get方式
    apt-get安装deb的包在Linux系统中,使用apt-get命令安装.deb包是一个常见的操作。以下是一个简单的命令示例,用于安装一个名为package.deb的本地.deb包:sudoapt-getinstall./package.deb如果你需要从远程仓库安装一个.deb包,你可以先使用dpkg安装.deb包,如下所示:s......
  • apt-get仅下载不安装软件包
    转自:https://blog.csdn.net/qq_14910065/article/details/127011650apt-get-ddownloadxxx#xxx是待下载的安装包ubuntu下载软件安装包命令。仅仅下载deb格式的安装包,不安装。/var/cache/apt/archives#下载后的安装包在此路径下第一种方法:root@VM-4-11-ubuntu:/var/cache/ap......