C++ 使用nlohmann/json和cpp-httplib 完成post请求

这篇具有很好参考价值的文章主要介绍了C++ 使用nlohmann/json和cpp-httplib 完成post请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近公司要我项目里弄http 请求,我没用过。探索了这么点东西。

第一步:用vscode  和它的 rest client插件完成post。

在文件里填入大数据同事给我的内容,右键send request,就拉取到了这个车的点位们。

C++ 使用nlohmann/json和cpp-httplib 完成post请求

 第二步;开始写代码,文件目录如下,include里放了json的头文件。

 

C++ 使用nlohmann/json和cpp-httplib 完成post请求

 C++ 使用nlohmann/json和cpp-httplib 完成post请求

代码如下:测试http.cpp

#include <iostream>
#include "httplib.h"
#include <nlohmann/json.hpp>
#include <Windows.h>
#include <string>
using namespace std;
using json = nlohmann::json;
int main()
{
    using json = nlohmann::json;
    json j_patch = R"({
        "did": "BCT5901642495177",
        "gpsStartTime" : "2022-11-14 15:11:35",
        "gpsEndTime" : "2022-11-14 15:11:29",
        "desc" : false,
        "pageSize" : 86400,
        "startRowKey" : "",
        "showColumns" : [
            "2602",
                "2603",
                "3014"
        ] ,
        "filterList" : [
            {
                "column": "2601",
                    "op" : "eq",
                    "value" : "0",
                    "filterIfMissing" : true
            }
        ] ,
                "parseValue": false
})"_json;
    
#if 1
    // 创建HTTP client 对象
    httplib::Client cli("192.168.13.73", 30001);
    // 注意这里设置时间的话有2种方式,(time_t sec, time_t usec)
    //cli.set_connection_timeout(300);
    //cli.set_read_timeout(300);
    // 创建header
    httplib::Headers headers = {
            { "content-type", "application/json" }
    };
    //auto res = cli.Post("/post", headers, params);
    // 参数准备
    string strvalue = j_patch.dump();
    cout << strvalue << endl;
    // 发送请求
    auto res = cli.Post("/hbase/canList", headers, strvalue, "application/json");
    cout << res->status << endl;
    cout << res->body << endl;
#if 0
    // 把结果弄成json, 然后从json中取出data项,
    auto jj = json::parse(res->body);
    json hk = jj["data"];
    string ss = jj.dump();

    cout << ss << endl;
#endif 
}

前面参数json 部分还可以用另一种方式:

    json bodyParamJson;
    bodyParamJson["did"] = "YXZ2612204084017";
    bodyParamJson["gpsStartTime"] = "2000-01-13 00:00:00";
    bodyParamJson["gpsEndTime"] = "2099-01-13 23:59:59";
    bodyParamJson["desc"] = false;
    bodyParamJson["pageSize"] = 86400;
    bodyParamJson["startRowKey"] = "";
    bodyParamJson["parseValue"] = false;
    bodyParamJson["showColumns"] = R"([
        "2602",
        "2603",
        "3014"
    ])"_json;

    bodyParamJson["filterList"] = R"([
        {
            "column": "2601",
            "op": "eq",
            "value": "0",
            "filterIfMissing": true
        }
    ])"_json;

    string ss = bodyParamJson.dump();

这样就能配置param 参数了。文章来源地址https://www.toymoban.com/news/detail-509672.html

到了这里,关于C++ 使用nlohmann/json和cpp-httplib 完成post请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 开源库nlohmann json使用备忘

    nlohmann/json是一个用于解析JSON的开源C++库,口碑一流,无需额外安装其他第三方库,还支持单个头文件模式,使用起来非常方便直观。 从官网https://github.com/nlohmann/json的Release页面下载单个 json.hpp 即可直接使用,无需单独编译。 下面以示例的方式罗列nlohmann/json库的基本使用方

    2024年02月16日
    浏览(26)
  • C++ vs2015编译json和protobuf报错nlohmann::detail::static_constnlohmann::detail::to_json_fn::value‘

    补充:这个问题也会导致protobuf编译和使用报错,按照本方法修复后问题解决 只要引入项目中的 #include “nlohmann/json.hpp” 用vs2015编译就会报错,甚至用vs2022的Visual Studio 2015 (v140)工具集编译也会报同样的错误,错误信息如下: 参考这篇博客“JSON for Modern C++ vs2015 企业版和专业

    2024年02月05日
    浏览(66)
  • c++ nlohmann/json 及修改json文件中个别关键字 JSON的三种格式https://blog.csdn.net/daxiong0816/article/details/125132404

    (2条消息) nlohmann json使用_nlohmann::json_蜗牛单行道的博客-CSDN博客json为JavaScript object notation 是一种数据格式,逐渐替换掉了传统的xml 。json数据格式的属性名称和字符串值需要用双引号引起来,用单引号或者不用引号会导致读取数据错误。json的另外一个数据格式是数组,和jav

    2024年02月08日
    浏览(46)
  • 使用nlohmann json库进行序列化与反序列化

    nlohmann源码仓库:https://github.com/nlohmann/json 使用方式:将其nlohmann文件夹加入,包含其头文件json.hpp即可 demo

    2024年02月10日
    浏览(27)
  • nlohmann json:类型检查

    nlohmann提供了成员函数type(),用于返回当前的json数据类型: 可以根据type进行类型检查:

    2024年02月13日
    浏览(24)
  • 开源 C++ JSON 库 sonic-cpp解析性能为 rapidjson 的 2.5 倍

    sonic-cpp 是由字节跳动 STE 团队和服务框架团队共同研发的一款面向 C++ 语言的高效 JSON 库,极致地利用当前 CPU 硬件特性与向量化编程,大幅提高了序列化反序列化性能,解析性能为 rapidjson 的 2.5 倍。 sonic-cpp 在字节内部上线以来, 已为抖音、今日头条等核心业务,累计节省

    2023年04月19日
    浏览(28)
  • nlohmann json:通过items遍历object/array

    编译运行输出: key: one, value: 1 key: two, value: 2 key: 0, value: 1 key: 1, value: 2 key: 2, value: 4 key: 3, value: 8 key: 4, value: 16  可以看到对于object可以通过key()和value()拿到键值对 对

    2024年02月13日
    浏览(38)
  • nlohmann json:实现map和struct的互转

    可以借助json实现map和struct的互转:

    2024年02月11日
    浏览(33)
  • nlohmann::json 超简单序列化反序列化

    2024年01月20日
    浏览(31)
  • windows 下使用 vscode + mingw 完成简单 c 或 cpp 代码的运行与调试

    本文为原链的镜像链接,更新可能不及时,如有能力,请访问原始链接。 基于 VS Code + MinGW-w64 的 C 语言/C++简单环境配置,专致小白 环境: Win10 21H2 19044.1381 + mingw + vscode 1.74.3 + C/C++ Extension Pack 插件 国内镜像盘: 链接 密码:1dcs 简单来说共分为 4 步 下载 mingw , vscode 和 插件 并

    2024年02月08日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包