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

c++ http操作接口

很简单的使用libcurl来操作http与服务器来通讯,包含http与https,对外只开放

#include "request.h"
#include "response.h"
#include "url.h"

三个头文件,简单易用,使用的实例如下:
void test_get()
{
    Request request("http://httpbin.org/ip");
    Response response = request.Perform();

    printf("---------------------------------------------\n");
    printf("%s\n", to_string(response.status()));
    printf("---------------------------------------------\n");
    if (response.status() == Status::SUCCESS
        && response.http_status_code() == http::StatusCode::HTTP_200_OK)   // equal to response.ok()
    {
        // Header
        printf("------ Headers -------------------------------\n");
        auto& headers = response.headers();
        for (auto& header : headers) {
            printf("%s: %s\n", header.first.c_str(), header.second.c_str());
        }
        // Data
        printf("------ Body ----------------------------------\n");
        printf("%s\n", response.data().c_str());
        printf("---------------------------------------------\n");
    }
    printf("\n\n");
}

void test_url() 
{
    Url url("https://api.icrystal.top/util/random");
    url.SetParam("min", "1");
    url.SetParam("max", "100");
    url.SetParam("count", "20");
    printf("GET: %s\n", url.ToString().c_str());

    Request request(url.ToString());
    request.set_verify_ssl(false);
    auto response = request.Perform();

    if (response.ok()) {
        // Header
        printf("------ Headers -------------------------------\n");
        for (auto& header : response.headers()) {
            printf("%s: %s\n", header.first.c_str(), header.second.c_str());
        }
        // Data
        printf("------ Body ----------------------------------\n");
        printf("%s\n", response.data().c_str());
        printf("---------------------------------------------\n");
    }
    else {
        printf("Request Error: %s %s\n", to_string(response.status()), http::to_string(response.http_status_code()));
    }
}
下载地址:

https://download.csdn.net/download/u011269801/88874623

相关文章:

c++ http操作接口

很简单的使用libcurl来操作http与服务器来通讯,包含http与https,对外只开放 #include "request.h" #include "response.h" #include "url.h" 三个头文件,简单易用,使用的实例如下: vo…...

oracle官网下载早期jdk版本

Java Downloads | Oracle JDK Builds from Oracle 以上压缩版,以下安装版 Java Downloads | Oracle 该链接往下拉能看到jdk8和jdk11的安装版 -- end...

Python爬虫实战:图片爬取与保存

引言: 在本文中,我们将学习如何使用Python创建一个简单的图片爬虫。 我们将利用requests库来发送HTTP请求,BeautifulSoup库来解析HTML页面,以及os和shutil库来下载和保存图片。通过这个教程,你将学会如何爬取网…...

CMS垃圾回收器

CMS垃圾回收 CMS GC的官方名称为“Mostly Concurrenct Mark and Sweep Garbage Collector”(最大-并发-标记-清除-垃圾收集器)。 作用范围: 老年代 算法: 并发标记清除算法。 启用参数:-XX:UseConMarkSweepGC 默认回收…...

【力扣白嫖日记】184.部门工资最高的员工

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 184.部门工资最高的员工 表:Employee 列名类型idintnamevarcharsalaryvarchardepartmentIdint …...

JAVA讲解算法-排序算法-选择排序算法-02

一、定义 选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素&a…...

【初始RabbitMQ】高级发布确认的实现

在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢? …...

用39块钱的全志V851se视觉开发板做了个小相机,还可以物品识别、自动追焦!

用39块钱的V851se视觉开发板做了个小相机。 可以进行物品识别、自动追焦! 这个超低成本的小相机是在V851se上移植使用全志在线开源版本的Tina Linux与OpenCV框架开启摄像头拍照捕获视频,并结合NPU实现Mobilenet v2目标分类识别以及运动追踪等功能…并最终…...

主从复制实现Redis集群

主从复制实现Redis集群实验 (一主二从): 实验环境: 使用Docker 搭建 Redis 版本 5.0.5 打开一个终端窗口,在其中运行如下命令创建一个名为redis-master的Redis容器。注意,它的端口是6379 (本地的端口:映射到容器的端口) docker run -itd--name redis-m…...

高分文献解读|3D打印骨支架实现梯度密度颌骨功能性重建

近月,浙江大学医学院附属口腔医院谢志坚教授团队与浙江大学化学系唐睿康教授团队、机械工程学院贺永教授团队合作,在期刊《Advanced Functional Materials》(IF19)上发表题为“A Hierarchical 3D Graft Printed with Nanoink for …...

大型电商日志离线分析系统(一)

一、项目需求分析 某大型网站日志离线分析系统 1.1 概述 该部分的主要目标就是描述本次项目最终七个分析模块的页面展示。 1.2 工作流 在我们的demo展示中,我们使用jqueryecharts的方式调用程序后台提供的rest api接口,获取json数据,然后…...

FL Studio Fruity Edition2024中文入门版Win/Mac

FL Studio Fruity Edition2024是一款功能强大的音乐制作软件,适合初学者和音乐爱好者使用。它提供了丰富的音乐制作工具,包括音频录制、编辑、混音以及MIDI制作等功能,帮助用户轻松创作出动人的音乐作品。 FL Studio 21.2.3 Win-安装包下载如…...

学习vue3第二节(使用vite 创建vue3项目)

使用vite 创建vue3项目 node 安装请移步 node官网: https://nodejs.p2hp.com/ node 版本控制 请移步 nvm官网:https://nvm.uihtm.com/ vite 生成vue项目完整版 请移步 vite官网:https://cn.vitejs.dev/ 1、使用 npm 或者 yarn 创建vue3 项目…...

基于Siamese网络的zero-shot意图分类

原文地址:Zero-Shot Intent Classification with Siamese Networks 通过零样本意图分类有效定位域外意图 2021 年 9 月 24 日 意图识别是面向目标对话系统的一项重要任务。意图识别(有时也称为意图检测)是使用标签对每个用户话语进行分类的任务,该标签…...

Java架构师之路五、微服务:微服务架构、服务注册与发现、服务治理、服务监控、容器化等。

目录 微服务架构: 服务注册与发现: 服务治理: 服务监控: 容器化: 上篇:Java架构师之路四、分布式系统:分布式架构、分布式数据存储、分布式事务、分布式锁、分布式缓存、分布式消息中间件、…...

[计算机网络]--IP协议

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、IP协议…...

MySQL问题记录

问题 Ubuntu2204 通过 apt 安装 mysql-server8.0.36 后,数次修改密码不生效,仍可无密码登录。 解决 mysql_native_password 是MySQL 5.7及之前版本使用的默认身份验证插件。在MySQL 8.0及更高版本中,默认的身份验证插件 caching_sha2_pass…...

LeetCode_Java_动态规划系列(1)(题目+思路+代码)

目录 斐波那契类型 746.使用最小花费爬楼梯 矩阵 120. 三角形最小路径和 斐波那契类型 746.使用最小花费爬楼梯 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。…...

Linux使用Docker部署在线协作白板WBO并结合内网穿透发布公网远程访问

文章目录 前言1. 部署WBO白板2. 本地访问WBO白板3. Linux 安装cpolar4. 配置WBO公网访问地址5. 公网远程访问WBO白板6. 固定WBO白板公网地址 前言 WBO在线协作白板是一个自由和开源的在线协作白板,允许多个用户同时在一个虚拟的大型白板上画图。该白板对所有线上用…...

petalinux烧写image.ub报错

xinlinx SDK烧写petalinux生成的BOOT.BIN和image.ub时,BOOT.BIN烧写正常,image.ub烧写报错如下 Erase Operation failed. INFO: [Xicom 50-44] Elapsed time 0 sec.ERROR: Flash Operation Failed串口助手操作擦除flash如图: 解决方法&am…...

FPGA新手避坑指南:手把手教你用IBERT测试A7开发板上的光口(XC7A35T + SFP)

FPGA高速收发器实战:从IBERT配置到光口调试全解析 当第一次拿到带有SFP光口的Artix-7开发板时,很多工程师会被高速收发器的复杂配置吓退。实际上,只要掌握几个关键步骤,用IBERT工具验证光口功能并不像想象中那么困难。本文将带你避…...

Android Studio中文语言包终极指南:告别兼容性问题的高效解决方案

Android Studio中文语言包终极指南:告别兼容性问题的高效解决方案 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在…...

Maplsemi美浦森原厂原装一级代理分错经销

Maplsemi美浦森原厂原装一级代理分错经销 序号 品牌 元件类别 型号 描述 包装 数量 1 MAPLESEMI MOSFET SLD20N06T TO-252 2500 2,500 2 MAPLESEMI MOSFET SLD130N04T TO-252 2500 5,000(https://i-blog.csdnimg.cn/direct/3f0025dea646479b87ba0c15005171b7.png)(https://i-bl…...

后端开发工程师如何利用Phi-4-mini-reasoning进行API设计与业务逻辑验证

后端开发工程师如何利用Phi-4-mini-reasoning进行API设计与业务逻辑验证 1. 引言:API开发中的痛点与解决方案 作为后端开发工程师,我们经常面临这样的困境:精心设计的API上线后才发现遗漏了关键边界条件,或者业务逻辑在复杂场景…...

智能桥接员中的抽象分离与实现独立

智能桥接技术作为现代系统架构的核心,其设计理念中的抽象分离与实现独立正逐渐成为高效、灵活开发的关键。通过将功能定义与具体实现解耦,智能桥接员能够适应复杂多变的业务需求,同时降低系统维护成本。本文将深入探讨这一设计原则的实践价值…...

SSD设计必看:巧用ONFI的CE_n引脚缩减机制,轻松搞定多NAND芯片堆叠与寻址

高密度NAND存储设计进阶:ONFI引脚复用与菊花链拓扑实战解析 当企业级SSD容量突破100TB门槛时,硬件工程师们会面临一个有趣的悖论——存储颗粒数量呈指数级增长,而主控芯片的物理引脚资源却始终有限。我曾参与一款全闪存阵列的研发&#xff0c…...

用R语言处理大规模人口数据的实例

在进行人口统计和分析时,我们经常会遇到大规模的数据集,如何高效地处理这些数据是每个数据分析师面临的挑战之一。本文将通过一个实际案例,展示如何使用R语言对一个包含50万以上个体数据的数据集进行处理和分析。 数据集介绍 首先,我们有一个包含两个个体(为简化示例,我…...

Betaflight固件编译实战:从源码到飞控的完整指南

Betaflight固件编译实战:从源码到飞控的完整指南 【免费下载链接】betaflight Open Source Flight Controller Firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight 你是否曾经想要深入理解无人机飞行控制器的核心工作原理?或者想要…...

248MHz RISC-V MCU还能这么玩?手把手教你用AG32VF407内置的2KLE CPLD做高速数据采集

248MHz RISC-V MCU与2KLE CPLD的协同设计实战:构建高速数据采集系统 当传统MCU遇到多路高速信号采集需求时,开发者常面临两种选择:要么增加昂贵的专用芯片,要么外挂FPGA/CPLD实现硬件并行处理。AG32VF407的独特之处在于&#xff0…...

哪些降重软件可以同时降低查重率和AIGC疑似率?2026年5款顶流工具深度黑盒实测

引言:在2026年的盲审里,你的论文正面临一场“被猎杀”的灾难 几天前,我的一个直博学弟在实验室崩溃大哭。他苦熬大半年、查重率仅有3.2%的完美终稿,在学院第一波预审中被无情“斩立决”。退回的理由极其刺眼:系统判定…...