libfv:基于C++20的异步HTTP库


Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /www/wwwroot/fawdlstty.com/wp-content/plugins/wp-syntax/wp-syntax.php on line 383

仓库地址:https://github.com/fawdlstty/libfv

介绍一款船新HTTP库。C++的HTTP库很多,但基于C++20的异步网络HTTP库几乎没有。我没找到好用的,因此写了一个。在讲解这个库之前,我先说说为什么我们需要这样的库。

C++ HTTP库有两种主要的实现方式,第一种是同步HTTP网络访问,比如这样的代码:

1
2
3
// 伪代码
Response _r = HttpGet ("https://t.cn");
std::cout << _t.text;

这样的代码写起来很简单,但它存在一个问题:HTTP网络访问比较耗时,可能需要几百毫秒,这么长时间,这个线程将阻塞在这里,比较消耗线程资源。假如遇到需要同时发起几十、几百个请求,将较大消耗系统资源。很显然,它不是一个较好的设计。

继续阅读libfv:基于C++20的异步HTTP库