Qt Http请求,post和get的两种方式

这篇具有很好参考价值的文章主要介绍了Qt Http请求,post和get的两种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天我们介绍一下QT的http请求,这里有post和get两种方式

一、post请求方式:参数分为网址和具体请求值两个部分,有时候还需要设置头信息,看具体情况定

 1 void MainWindow::sendPostRequest()
 2 {
 3     QNetworkAccessManager *m_pHttpMgr = new QNetworkAccessManager();
 4     //设置url
 5     QString url = "http://10.0.0.20:8005/order/charge";
 6     //设置头信息
 7     QNetworkRequest requestInfo;
 8     requestInfo.setUrl(QUrl(url));
 9     requestInfo.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/json"));
10 //  requestInfo.setRawHeader("Content-Type","application/json");//服务器要求的数据头部
11 //  requestInfo.setRawHeader("Accept","text/json,*/*;q=0.5");//服务器要求的数据头部
12 
13     //发送数据
14     QByteArray qByteHttpData = sendJson();
15     QNetworkReply *reply =  m_pHttpMgr->post(requestInfo, qByteHttpData);
16     //添加事件循环机制,返回后再运行后面的
17     QEventLoop eventLoop;
18     connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
19     eventLoop.exec();       //block until finish
20 
21     //错误处理
22     if (reply->error() == QNetworkReply::NoError)
23     {
24         qDebug() << "request protobufHttp NoError";
25     }
26     else
27     {
28         qDebug()<<"request protobufHttp handle errors here";
29         QVariant statusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
30         //statusCodeV是HTTP服务器的相应码,reply->error()是Qt定义的错误码,可以参考QT的文档
31         qDebug( "request protobufHttp found error ....code: %d %d\n", statusCodeV.toInt(), (int)reply->error());
32         qDebug(qPrintable(reply->errorString()));
33     }
34 
35     //请求收到的结果
36     QByteArray responseByte = reply->readAll();
37 }

二、get请求方式:参数和网址拼接到一起请求

 1 void MainWindow::sendGetRequest()
 2 {
 3     QNetworkAccessManager *m_pHttpMgr = new QNetworkAccessManager();
 4     //设置url
 5     QString url = "http://10.0.0.20:8005/vending_machine/items/ac83f39ea268";//fae4b325e52c
 6     QNetworkRequest requestInfo;
 7     requestInfo.setUrl(QUrl(url));
 8 
 9     //添加事件循环机制,返回后再运行后面的
10     QEventLoop eventLoop;
11     QNetworkReply *reply =  m_pHttpMgr->get(requestInfo);
12     connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
13     eventLoop.exec();       //block until finish
14     //错误处理
15     if (reply->error() == QNetworkReply::NoError)
16     {
17         qDebug() << "request protobufHttp NoError";
18     }
19     else
20     {
21         qDebug()<<"request protobufHttp handle errors here";
22         QVariant statusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
23         //statusCodeV是HTTP服务器的相应码,reply->error()是Qt定义的错误码,可以参考QT的文档
24         qDebug( "request protobufHttp found error ....code: %d %d\n", statusCodeV.toInt(), (int)reply->error());
25         qDebug(qPrintable(reply->errorString()));
26     }
27     //请求返回的结果
28     QByteArray responseByte = reply->readAll();
29     qDebug() << responseByte;
30 }

三、主要区别:

get用于请求获取数据,post向指定的资源创建修改数据

get把参数包含在URL中(长度有限制),POST通过请求实体传递参数(安全)

qt http post,QT开发,qt,http,qt教程,qt开发,网络协议 

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓文章来源地址https://www.toymoban.com/news/detail-608212.html

到了这里,关于Qt Http请求,post和get的两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • qt使用http get和post

    准备 使用到网络编程,需要在Pro文件中加入如下语句 get请求 widge.h widget.cpp post请求 widge.h widget.cpp post请求的数据格式 参数写在url后面 跟get一样,dataArray为空即可 http://127.0.0.1:18080/define/login?userId=1password=123 对应的后端接口 使用application/x-www-form-urlencoded form表单数据被编码为

    2024年02月08日
    浏览(38)
  • 使用QT实现http里面的get和post

    #1024程序员节|参与投稿,赢限定勋章和专属大奖# #假如你有一台服务器,你最想做哪些事?# #你被什么样的BUG困扰过一周以上?# 在http里面下面这些方法和服务器的响应代码一起用于HTTP协议中的请求和响应交互。请注意,这些函数不是由编程语言实现的,而是由HTTP协议规定

    2024年02月07日
    浏览(29)
  • (Qt) Http之Get请求使用基础

    http的操作是网络通信中非常常见的操作,其中广泛使用get,post两种操作。 本文将对Qt中,http的get请求做简单应用,来进行展示。 这里不做排版了,不然篇幅过大 [1] QNetworkAccessManager 对于每个 reply 的 finish 都会发送 finished 的信号。 如果一个 manager 处理多个请求可能会出现先

    2024年02月12日
    浏览(28)
  • 嵌入式Qt中实现http服务接收POST请求

    嗨喽,大家好!以下知识点做个简单记录分享给小伙伴们! 首先我们来理解几个概念 “ WebSocket服务器和HTTP服务器是两种不同的服务器类型,它们在协议、连接方式和通信模式等方面有所区别。 协议:HTTP服务器使用HTTP协议进行通信,而WebSocket服务器使用WebSocket协议。HTTP协

    2024年02月20日
    浏览(32)
  • 【接口】HTTP(3) |GET和POST两种基本请求方法有什么区别

    在我面试时,在我招人面试别人时,10次能遇到7次这个问题,我听过我也说回答过: Get: 一般对于从服务器取数据的请求可以设置为get方式 Get方式在传递参数的时候,一般都会把参数直接拼接在url上 Get请求方法可以传递的参数数据量是有限的(因为一般参数是拼接在url上,

    2024年04月12日
    浏览(35)
  • HTTP中get和post请求方式

    #get和post特点 get请求: 请求参数在请求地址后面,提交的数据量较小,安全性较差,不建议用来提交敏感信息(地址栏中会显示,并且有可能被保存请求地址)。 功能:GET 方法用于获取由 Request-URI 所标识的资源的信息 默认方法: GET方法是默认的HTTP请求方法 ,例如当我们

    2024年04月26日
    浏览(30)
  • QT打包的两种方式

    QT打包的两种方式: 一个是QT5自带的windeployqt(不需要下载安装),它可以找到程序(exe)用到的所有库文件,并且都拷贝到exe程序的当前文件。此时打包的exe较小,需要和拷贝进来的文件放一起运行,也可以将这些文件再次打包成一个大的exe文件,此时用的第二种打包方式

    2024年02月16日
    浏览(36)
  • http之GET请求和POST请求的传递参数的方式

    get: 情况1:接口正常返回 code,data,message ,且无需传递参数 (vu3) 情况2: 需要将参数拼接到url地址上 (vue3)   情况3 需要传递参数,query 传参 (vue3) 情况4 既有query传参也有path传参 post 情况1 接口返回的数据没有使用data包裹,这种情况一般取不到数据,我们需要用 ext

    2024年02月16日
    浏览(32)
  • QT操作excel的两种方式 QT基础入门【Excel的操作】

    QT操作excel的方式有两种:QAxObject 和QtXlsx QAxObject是通过调用office或者wps组件来实现对excel图表的操作的。只有装office软件或者wps软件就可以实现,但是 如果只装了office软件,有时可以用有时不可以用; 如果只装wps软件,完全不能使用; 如果两个都装了,基本上结果不可控;

    2024年02月12日
    浏览(23)
  • Qt多线程使用的两种方式

    方式1 :继承自QThread类,重载run函数。此实现方法只有run()函数内的代码是运行在子线程内。 (不使用事件循环) 使用方法 : (1)run函数内有一个while或for的死循环(模拟耗时操作); (2)通过一个 标记位 来控制死循环的退出; (3)run()函数中无限循环记得 强制休息

    2023年04月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包