当前位置: 首页 > news >正文

C++使用QtHttpServer开发服务端Server的Http POST接口和客户端Client示例

Client HTTP POST

假设http://127.0.0.1:8888/post/是一个能够接受POST请求的路径,我们想要向它提交一段json数据,用Qt可以这样实现:

Suppose we want to make an HTTP POST with json body to http://127.0.0.1:8888/post/.

QCoreApplication app(argc, argv);
QNetworkAccessManager *mgr = new QNetworkAccessManager;
const QUrl url(QStringLiteral("http://127.0.0.1:8888/post/"));
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=utf-8");
QJsonObject obj;
obj["key1"] = "value1";
obj["key2"] = "value2";
QJsonDocument doc(obj);
QByteArray data = doc.toJson();
QNetworkReply *reply = mgr->post(request, data);QObject::connect(reply, &QNetworkReply::finished, [=](){if(reply->error() == QNetworkReply::NoError){QString contents = QString::fromUtf8(reply->readAll());qDebug() << contents;}else{QString err = reply->errorString();qDebug() << err;}reply->deleteLater();mgr->deleteLater();
});

Http Server

而这个本地的Server,亦可使用QtHttpServer方便实现:

Server can be implemented by QtHttpServer easily, too.

QHttpServer http_server;
http_server.route("/", []() {
return "Hello QtHttpServer";
});
http_server.route("/post/", QHttpServerRequest::Method::POST,
[](const QHttpServerRequest &request)
{qDebug() << "received requestBody" << request.body();return QJsonObject{{"message", "finish"}};
});
http_server.listen(QHostAddress::Any, 8888);

Code is available

Please refer to my project: qthttpserver-sample-with-client

Reference

How to send a POST request in Qt with the JSON body

qt-labs/qthttpserver

http://www.lryc.cn/news/362827.html

相关文章:

  • 计算机基础(8)——音频数字化(模电与数电)
  • 手搓单链表(无哨兵位)(C语言)
  • 代码随想录算法训练营第18天|二叉树
  • 使用tftpd更新开发板内核
  • MySQL数据库整体知识点简述
  • 深入理解MySQL索引下推优化
  • 论文降重技巧:AI工具如何助力论文原创性提升?
  • el-date-picker的使用,及解决切换type时面板样式错乱问题
  • Flutter 中的 ToggleButtonsTheme 小部件:全面指南
  • 新手教程之使用LLaMa-Factory微调LLaMa3
  • Java函数笔记
  • Maven实战: 从工程创建自定义archetype
  • 初识JAVA中的包装类,时间复杂度及空间复杂度
  • RapidMiner如何利用Hugging Face中的模型实现更有趣的事
  • Vue3 自定义Hooks函数的封装
  • python的DataFrame和Series
  • ARP欺骗的原理与详细步骤
  • 25、DHCP FTP
  • spark学习记录-spark基础概念
  • BGP数据包+工作过程
  • 【C语言】详解函数(庖丁解牛版)
  • createAsyncThunk完整用法介绍
  • [书生·浦语大模型实战营]——第六节 Lagent AgentLego 智能体应用搭建
  • Word文档如何设置限制编辑和解除限制编辑操作
  • IO进程线程(六)进程
  • 机器视觉——找到物块中心点
  • 重磅消息! Stable Diffusion 3将于6月12日开源 2B 版本的模型,文中附候补注册链接。
  • Python报错:AttributeError: <unknown>.DeliveryStore 获取Outlook邮箱时报错
  • 如何 Logrus IT 的质量评估门户帮助提升在线商店前端(案例研究)
  • 程序调试