QT进行http请求(post/get)

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

在刚接触QT时第一个任务就是进行http请求,现在才开始记录,可能会有遗漏的点。

一、post请求

在.pro文件中

QT += network

在.h文件中添加对应的头文件

#include <QWidget>
#include <QObject>
#include <QDebug>
#include <QHttpMultiPart>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QMetaObject>
#include <QEventLoop>
#include <QJsonDocument>            //以下是json数据传送所需头文件
#include <QJsonParseError>
#include <QJsonObject>
#include <QJsonValue>
#include <QJsonArray>

在.cpp中

/*
    功能说明:post请求
    参数说明:key - 加密的密钥
             data - 加密的参数
    返   回:无
*/
void GaodePost::PostRequest(QString key,QString data)
{
    QJsonObject dataobj;            //构建json对象dataobj

    dataobj.insert("key",key);
    dataobj.insert("data",data);

    QJsonDocument document;
    document.setObject(dataobj);
    QByteArray byte_array = document.toJson(QJsonDocument::Compact);    //类型转换

    //http请求
    QNetworkRequest request1;
    QNetworkAccessManager nam;
    connect(&nam, &QNetworkAccessManager::finished, this, &GaodePost::receiveGaodePostReply);

    request1.setUrl(QUrl("http://123.12.365.152/接口名"));    //要请求的网址
    
    //请求头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请求头+传输的数据

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

}

//接收请求返回的数据
QString GaodePost::receiveGaodePostReply(QNetworkReply *reply)
{
    QString res = reply->readAll();
    return res;
}

二、get请求

.pro和.h文件和post请求一样,在.cpp中文章来源地址https://www.toymoban.com/news/detail-509215.html

//get请求
void GaodeGet::GetRequest()
{
    QNetworkRequest request1;
    QNetworkAccessManager nam;
    connect(&nam, &QNetworkAccessManager::finished, this, &GaodeGet::receiveGaodeGetReply);

    //get与post的请求方式有所不同,get是在接口名后添加 ? 和传输的数据(type)
    request1.setUrl(QUrl("http://123.12.365.152/接口名?type"));
    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.get(request1);    //get请求头

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

//接收get请求返回的数据
void GaodeGet::receiveGaodeGetReply(QNetworkReply *reply)
{
    QString res = reply->readAll();
    qDebug() << "GaoDeWidget::receiveReply_get recive:" << res;
}

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

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

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

相关文章

  • uniapp发起post和get请求——this.$http.get 和 this.$http.post传参

    main.js按照内容自行修改

    2024年02月15日
    浏览(46)
  • HTTP中GET请求和POST请求的区别

    HTTP(超文本传输协议)是用于在 Web 浏览器和 Web 服务器之间传输数据的协议。在 HTTP 中,GET 和 POST 是两种常见的请求方法。一般我们在浏览器输入一个网址访问网站都是 GET 请求;在 FORM 表单中,可以通过设置 Method 指定提交方式为 GET 或者 POST 提交方式,默认为 GET 提交方

    2024年04月15日
    浏览(40)
  • java调用http接口(get请求和post请求)

    1.http接口的格式如下: 图片选择失败,我只能把数据贴出来,如果有不懂的可以问我哈。 http://localhost:8881/department/getDepartmentList接口数据如下:(请求方式是GET) http://localhost:8881/department/getDataById?id=3接口数据如下:(请求方式是POST) 2.需要引入的包有: 3.实现方法如下:

    2024年02月13日
    浏览(50)
  • Java发送HTTP GET/POST请求

    在这篇文章中,将向你展示四种发送Http的GET/POST的例子,如下: 在Java11的java.net.http.*包中,有一个HttpClient类可以完成HTTP请求。 Java11HttpClientExample.java 本例使用HttpURLConnection(http)和HttpsURLConnection(https) HttpURLConnectionExample.java 使用Apache HttpClient完成HTTP请求的发送需要添加Maven依赖

    2024年02月13日
    浏览(42)
  • Http中post/get请求参数接收

    Http请求报文示例图如下:   ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GET和POST,Spring 3.0提供了一个HiddenHttpMethodFilter,允许通过_method的表单参数指定这些特殊的HTTP方法(实际上还是通过POST提

    2024年01月25日
    浏览(73)
  • HTTP中get和post请求方式

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

    2024年04月26日
    浏览(39)
  • C# Http 请求接口 Get / Post

    目录 一、概述 二、创建 Web API  三、HttpRequestHelper 三、测试 结束 get 和 post 请求,最早被用来做浏览器与服务器之间交互HTML和表单的通讯协议,后来又被广泛的扩充到接口格式的定义上,到目前为止,get / post 请求依然应用在各大网站中,比如在用户登录时,调用 get / post 

    2024年02月11日
    浏览(46)
  • HTTP中get和post请求方法详解

    写在前面 get和post是最常用的http/htttps请求方式,一定要掌握好二者各自特点以及区别。 (一)、get请求 请求参数在请求地址后面,提交的数据量较小,安全性较差,不建议用来提交敏感信息(地址栏中会显示,并且有可能被保存请求地址)。 (二)、post请求 请求参数放在

    2024年02月14日
    浏览(37)
  • Java http GET POST 请求传参

    HTTP POST请求传参方式 方式一: 方式二 HTTP GET请求传参方式

    2024年02月15日
    浏览(44)
  • 关于HTTP请求GET和POST的区别

    关于 HTTP 请求 GET 和 POST 的区别 1.GET 提交,请求的数据会附在 URL 之后(就是把数据放置在 HTTP 协议头< request-line >中) GET: 特定浏览器和服务器对 URL 长度有限制 ,例如 IE 对 URL 长度的限制是 2083 字节 (2K+35) 。对于其他浏览器,如 Netscape 、 FireFox 等,理论上没有长度限制

    2024年02月06日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包