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

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

0 人参与  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)
  • 赞助本站

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

最新文章

  • 丁榆:结局+番外看点十足(和渣男小叔叔的游戏日常)全书无套路阅读
  • 法医狂妃:王爷你命中缺我小说(苏七夜景辰)全本完整阅读最新章节(法医狂妃:王爷你命中缺我)_笔趣阁
  • (头条)洛甯陆乘渊小说(闪婚老公是卧底,消失三年回来了)整本免费版阅读无广告(洛甯陆乘渊)
  • 陆少今天又秀恩爱了吗后续(陆怀骁苏棠)(陆少今天又秀恩爱了吗)整本畅享在线+无广告结局
  • 独家江柏俊夏清恬无删减(重生之团长俊夫要离婚)(江柏俊夏清恬)TXT免费版阅读
  • 全网首发重生下乡嫁糙汉,渣男全家悔哭了彩蛋(师明凯颜惜雪)(重生下乡嫁糙汉,渣男全家悔哭了)全本完整阅读无弹窗
  • 我是让他不屑一顾,不愿多看一眼的路人小说(安喻意商晋深)(我是让他不屑一顾,不愿多看一眼的路人)在线畅读阅读连载中
  • 丁榆后续(和渣男小叔叔的游戏日常)全文在线下载在线+纯净版结局
  • 洛甯陆乘渊::结局+番外评价五颗星-闪婚老公是卧底,消失三年回来了:结局+番外新上热文
  • 前传孟流年周丽珍续集(孟流年周丽珍)终章阅读极简(孟流年周丽珍)
  • 夏语栀祁墨寒我们各归人海,此生,也不必再见彩蛋小说结尾+附加(我们各归人海,此生,也不必再见)清爽版阅读
  • 重生下乡嫁糙汉,渣男全家悔哭了小说完结篇(师明凯颜惜雪)(重生下乡嫁糙汉,渣男全家悔哭了)全书无套路阅读无广告小说大结局

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

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