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

商城网站建设运营合同书免费申请一个域名

商城网站建设运营合同书,免费申请一个域名,做公司网站的公司有哪些,amp 插件 wordpresscpp-httplib 1. 介绍2. 安装3. 类与接口3.1 httplib请求3.2 httplib响应3.3 httplib服务端3.4 httplib客户端 4. 使用4.1 服务端4.2 客户端 1. 介绍 C HTTP 库#xff08;cpp-httplib#xff09;是一个轻量级的 C HTTP 客户端/服务器库#xff0c;它提供了简单的 API 来创建… cpp-httplib 1. 介绍2. 安装3. 类与接口3.1 httplib请求3.2 httplib响应3.3 httplib服务端3.4 httplib客户端 4. 使用4.1 服务端4.2 客户端 1. 介绍 C HTTP 库cpp-httplib是一个轻量级的 C HTTP 客户端/服务器库它提供了简单的 API 来创建 HTTP 服务器和客户端支持同步和异步操作。这种第三方网络库可以让我们免去搭建服务器或客户端的时间把更多的精力投入到具体的业务处理中提高开发效率。以下是一些关于cpp-httplib 的主要特点 轻量级cpp-httplib 的设计目标是简单和轻量只有一个头文件包含即可不依赖于任何外部库。跨平台它支持多种操作系统包括 Windows、Linux 和 macOS。同步和异步操作库提供了同步和异步两种操作方式允许开发者根据需要选择。支持 HTTP/1.1它实现了 HTTP/1.1 协议包括持久连接和管道化。Multipart form-data支持发送和接收 multipart/form-data 类型的请求这对于 文件上传非常有用。SSL/TLS 支持通过使用 OpenSSL 或 mbedTLS 库cpp-httplib 支持 HTTPS 和 WSS。简单易用API 设计简洁易于学习和使用。性能尽管是轻量级库但性能表现良好适合多种应用场景。社区活跃cpp-httplib 有一个活跃的社区不断有新的功能和改进被加入。 2. 安装 git clone https://github.com/yhirose/cpp-httplib.git3. 类与接口 3.1 httplib请求 namespace httplib {// 文件信息结构体struct MultipartFormData{std::string name; // 字段名称std::string content; // 文件内容std::string filename; // 文件名称std::string content_type; // 文件类型};using MultipartFormDataItems std::vectorMultipartFormData;struct Request{std::string method;//请求方法std::string path;//请求资源路径Headers headers;//请求报头std::string body;//请求正文Params params;//查询字符串MultipartFormDataMap files;//保存的是客户端上传的文件信息Ranges ranges;//用于实现文件断点续传的请求文件区间 //判断请求报头中有没有某个字段bool has_header(const char *key) const;//获取请求报头中对应的字段值std::string get_header_value(const char *key, size_t id 0) const;//将key-val的字段值设定在http请求中void set_header(const char *key, const char *val);//判断对应的文件name是否存在主要判断MultipartFormData里面的name是否存在bool has_file(const char *key) const;//获取对应的文件信息MultipartFormData get_file_value(const char *key) const;}; }3.2 httplib响应 struct Response {std::string version;//响应版本int status -1;//响应状态码std::string reason;Headers headers;//响应报头std::string body;//响应正文std::string location; // 重定向位置//设置正文内容正文类型void set_content(const std::string s,const std::string content_type);//设置头部字段,以key val方式void set_header(const std::string key,const std::string val); };3.3 httplib服务端 class Server {//Handler是对应请求资源路径的回调函数using Handler std::functionvoid(const Request , Response );//Handlers是一个映射表它映射的是请求资源路径和对应回调函数using Handlers std::vectorstd::pairstd::regex, Handler//对应方法设置对应请求路径和回调函数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); };Http请求对应每个请求方法都有自己的路由选择表。构建服务器的时候可以调用Server里面的Get(“/hello”,Hello)将请求方为GET请求资源/hello与函数Hello 注册 在Handlers表中。当http请求的请求方法是GET方法且请求资源是/hello,那么服务器则会调用Hello函数构建相对应的http响应。 3.4 httplib客户端 Get接口请求服务器对应请求路径的资源请求成功后返回一个result值这个值就是一个response类型信息通过返回值进行获得。 post接口是上传一个文件信息给服务器重载了两个函数一个是通过MultipartFormData类型进行组织好文件内容然后插入到MultipartFormDataItems数组中上传这种方式是可以在一个请求中上传多个文件信息另一个则是只针对一个文件信息上传。 class Client {//构造一个客户端对象传入服务器Ip地址和端口explicit Client(const std::string host, int port);//向服务器发送GET请求Result Get(const std::string path);Result Get(const std::string path, const Headers headers);//向服务器发送Post请求//path是路径//body是正文//content_type是正文的类型Result Post(const std::string path, const std::string body,const std::string content_type);//以Post方法上传文件Result Post(const char *path, const MultipartFormDataItems items);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. 使用 4.1 服务端 #includeiostream #includecpp-httplib/httplib.hvoid Hi(const httplib::Request req,httplib::Response rsp) {std::coutreq.methodstd::endl;std::coutreq.pathstd::endl;std::string res htmlbodyh1你好世界!/hi/body/html;rsp.set_content(res,text/html);}void File(const httplib::Request req,httplib::Response rsp) {bool ret req.has_file(file);if(ret false){std::cout文件不存在std::endl;return;}auto file req.get_file_value(file);std::coutfile.namestd::endl;std::coutfile.filenamestd::endl;std::coutfile.contentstd::endl;std::coutfile.content_typestd::endl; }int main() {httplib::Server server;server.Get(/Hi,Hi);server.Post(/File,File);server.listen(0.0.0.0,8080);return 0; }4.2 客户端 #includeiostream #includecpp-httplib/httplib.hint main() {httplib::Client client(127.0.0.1,8080);auto result1 client.Get(/Hi);if(result1 result1-status 200){std::coutresult1-bodystd::endl;}else{std::cerrNo content returnstd::endl;}httplib::MultipartFormData data;data.name file;data.filename upload;data.content upload content;data.content_type text/plain;httplib::MultipartFormDataItems items;items.push_back(data);auto result2 client.Post(/File,items);if(result2 result2-status 200){std::coutresult2-bodystd::endl;}else{std::cerrupload errorstd::endl;}return 0; }all:server clientservre:server.ccg -o $ $^ -stdc17 -lpthreadclient:client.ccg -o $ $^ -stdc17 -lpthread
http://www.pierceye.com/news/962949/

相关文章:

  • 做静态头像网站网站做百度竞价利于百度优化
  • 网站建设属于税收建立网站后怎样收费
  • 婚礼礼网站如何做的云南推广公司
  • 模板建站流程seo优化推广
  • 龙岗网络推广深圳网站建设我的世界的头怎么做视频网站
  • 高明网站建设首选公司深圳市建设安监站网站
  • 宁波网站建设科技有限公司注册开发公司
  • 什么网站有女人跟狗做的和平东路网站建设
  • 绍兴手机网站建设wordpress 文字排版
  • 宁波网站设计公司有几家企业网站建设计划书
  • 做微信小程序和网站那个简单给周杰伦做网站
  • 营销型网站建设题库网站制作里面链接怎么做
  • 做网站空间 阿里云h5下一页
  • 怎样才能在百度搜索到自己的网站网站建设制作要学什么
  • 北京网站推广排名外包河南省工程建设业协会网站
  • 桂林市电力建设公司网站野望王绩翻译
  • 网站模版免费网片生产厂家
  • 实用网站设计步骤百度竞价广告代理
  • 怎么在vk网站上做推广网站建设柚子网络科技官网
  • 威海网站优化公司wordpress post title
  • 网站建设验收期安阳后营吧
  • 询盘网站培训机构前端开发
  • 企业如何做网站建站小程序定制开发深圳
  • 创建网站怎么赚钱的视频博客主题wordpress
  • 北京大兴区网站建设如何打造平台
  • 建设公司网站需要多少天棋盘游戏类网站开发
  • 织梦网站logo修改探测器 东莞网站建设
  • 图片网站收录淮北网站建设求职简历
  • 北京建设局投诉网站首页晋江外贸网站建设
  • 如何更改网站模板网站建设这一行业怎样