最近要用C++实现哥httpserver,之前探索了很多个http的库。
1. 我之前最习惯用httplib-cpp
github.comhttps://github.com/yhirose/cpp-httplib
但是它要求gcc-g++版本要大于4.8。然后我用了6.1.0之后,我的其他库比如mysql glog之后怎么都链接不上。换了系统,换了gcc-g++版本还是不行,可能时版本跨度大吧。结果新编译了glog也不行。懒得折腾了。
2. 后来我用的是workflow,还有它的wfrest。
GitHub - wfrest/wfrest: C++ Web Framework REST API
但是略微麻烦。好像要求的gcc-g++版本也是很高的。没办法,我这边用的还是4.8.1或者4.8.5,放弃了
3. 后来我用的是libcurl
这个是比较经典牛逼的。但是我没找到它写httpserver的例子。
4. 最后我用的是libevent .
libeventhttps://libevent.org/这个还是比较屌的。
然后我主要参考的是:
基于libevent的http服务器实现 - 知乎 (zhihu.com)
Linux使用evhttp实现一个简单的HttpServer_hpuzsk的博客-CSDN博客_evhttp_add_header(req->output_headers,
注意下面,要获取rep->input_buffer 里的内容的时候,不知直接用,的获取一下长度。然后把它拷贝出来。那样,拷贝出来的才是真正的body 或者叫数据载荷。否则那个inputbuffer里有好多的东西。会干扰你的工作。