当前位置:首页 » 《休闲阅读》 » 正文

[C++][第三方库][httplib]详细讲解

24 人参与  2024年10月15日 18:01  分类 : 《休闲阅读》  评论

点击全文阅读


目录

1.介绍2.安装3.类与接口4.使用


1.介绍

C++ HTTP库(cpp-httplib)是一个轻量级的C++ HTTP客户端/服务器库,它提供了简单的API来创建HTTP服务器和客户端,支持同步和异步操作特点轻量级cpp-httplib的设计目标是简单和轻量,只有一个头文件包含即可,不依赖于任何外部库跨平台:它支持多种操作系统,包括Windows、Linux、MacOS同步和异步操作:提供了同步和异步两种操作方式,允许开发者根据需要选择支持HTTP/1.1:实现了HTTP/1.1协议,包括持久连接和管道化Multipart from-data:支持发送和接收multipart/form-data类型的请求,这对于文件上传非常有用SSL/TLS:通过使用OpenSSLmbedTLS库,cpp-httplib支持HTTPS和WSS简单易用:API设计简洁,易于学习和使用性能:尽管是轻量级库,但性能表现良好,适合多种应用场景社区活跃cpp-httplib有一个活跃的社区,不断有新的功能和改进被加入

2.安装

git clone https://github.com/yhirose/cpp-httplib.git

3.类与接口

httplib回调处理流程:在一个哈希表内,维护某个方法内对应请求资源的对应处理方法
namespace httplib {     struct Request     {         std::string method;         std::string path;         Headers headers;         std::string body;         Params params;     };    struct Response     {         std::string version;         int status = -1;         std::string reason;         Headers headers;         std::string body;         void set_content(const std::string &s,                           const std::string &content_type);         void set_header(const std::string &key,                          const std::string &val);     };        class Server     {         using Handler = std::function<void(const Request &, Response                                            &)>;         Server &Get(const std::string &pattern, Handler handler);         Server &Post(const std::string &pattern, Handler handler);         Server &Put(const std::string &pattern, Handler handler);           Server &Delete(const std::string &pattern, Handler handler);         bool listen(const std::string &host, int port);     };        class Client     {         explicit Client(const std::string &host, int port);         Result Get(const std::string &path, const Headers &headers);         Result Post(const std::string &path, const std::string &body,                     const std::string &content_type);         Result Put(const std::string &path, const std::string &body,                    const std::string &content_type);         Result Delete(const std::string &path, const std::string &body,                       const std::string &content_type);     };} 

4.使用

服务器搭建流程: 实例化服务器对象Server注册回调函数,告诉服务器收到哪个请求,应该使用哪个回调函数进行处理启动服务器
#include "httplib.h"int main(){    // 1.实例化服务器对象    httplib::Server svr;    // 2.注册回调函数  void(const httplib::Request&, const httplib::Response&)    svr.Get("/SnowK", [](const httplib::Request& req, httplib::Response& resp)    {        std::cout << req.method << std::endl;        std::cout << req.path << std::endl;        for(auto& iter : req.headers)        {            std::cout << iter.first << ": " << iter.second << std::endl;        }        std::string body("<html><body><h1>Hello SnowK<h1><body><html>");        resp.set_content(body, "text/html");        resp.status = 200;    });    // 3.启动服务器    svr.listen("0.0.0.0", 9200);    return 0;}

点击全文阅读


本文链接:http://m.zhangshiyu.com/post/172283.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 沈毓灵踹掉言情男主,勾搭男频帝王小说(踹掉言情男主,勾搭男频帝王)前传+全书阅读新作预览
  • 改娶抓阄选中的残疾女将军后,郡主悔疯了看点十足_太后叶眠雪裴知晏宝藏文_小说后续在线阅读_无删减免费完结_
  • 高考还没开始,爸妈开始惩罚我了惊天黑幕_青青董梦竹许诺全新_小说后续在线阅读_无删减免费完结_
  • 沈时宴林初眠附加完整在线阅读(踹掉渣男后,我被闺蜜小叔宠上天)最近更新列表
  • 娇妾善撩又能生,男主为她折腰(顾熙宁)结局+番外新上热文_(顾熙宁)娇妾善撩又能生,男主为她折腰小说全文免费阅读最新章节列表笔趣阁
  • ***宝藏文_芝芝玲玲贺云章最新阅读_小说后续在线阅读_无删减免费完结_
  • 靠弹幕知道父母的兄弟穷养计划后,我成功摆脱结局_小说后续在线阅读_无删减免费完结_
  • (傅砚臣盛书意)傅砚臣盛书意(盛书意傅砚臣)无套路无弹窗全部章节列表
  • 救命!我穿到修仙界当催生员了:结局+番外(程诺诺)小说免费更新在线阅读_救命!我穿到修仙界当催生员了:结局+番外免费全文阅读笔趣阁(程诺诺)
  • 为讨情人欢心,老公将怀孕八个月的我打到流产完整文本_顾裴司白月光顾董完结版_小说后续在线阅读_无删减免费完结_
  • 祝沉风苏轻寰附加(祝沉风苏轻寰)(苏轻寰祝沉风)全本浏览阅读连载中
  • 谢师宴上,我当众撕毁儿子清北录取通知书热门_陈茹通知书贺聪内容精选_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1