libcurl多接口单易接口多请求
libcurl multi interface single easy interface multiple requests
我希望将libcurl用于异步HTTP请求。为此,我使用了libcurl提供的多接口。我的应用程序将定期收到许多请求,我希望使用单个简单接口并将其添加到多接口中。我不打算为每个http请求使用新的简单接口句柄,因为它打开了一个与新会话的新连接。我需要在一个连接/会话中发出所有请求。所以,我希望对所有请求使用一个简单的接口句柄。
使用这个模型,我在发出多个http请求时遇到了问题。第一个请求使用curl_multi_perform顺利通过。已处理响应。第二个请求没有通过curl_multi_perform。当第二次调用curl_multi_perform时,第二个参数running_hands返回为0,而不是1。
这是我在高层使用的API流。
curl_easy_init()
curl_multi_init()
curl_multi_add_handle()
curl_multi_perform() // running_handles returned is 1.
//look for response (curl_multi_timeout, curl_multi_fdset, select, curl_multi_info_read, ...)
curl_multi_perform() // This does not work and running_handles returned is 0
...
curl_multi_cleanup()
curl_easy_cleanup()
libcurl多接口不能与为一段时间内的多个请求添加的单个简单接口一起使用吗?请帮忙。提前谢谢。
当一个易句柄完成了它的传输,并且您想在后续传输中重复使用同一个句柄时,您需要首先将它从多句柄(curl_multi_remove_handle)中删除,然后(可能设置新选项,然后)使用curl_multi_add_handle重新添加它,使其开始另一次传输。
但请注意,在使用多接口时,连接池和重用机制由多句柄和易句柄所有,因此只要您保持多句柄的活动状态,连接就可以并且将在易句柄之间重复使用。
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 如何在boost beast http请求中设置http头
- 发送一个带有libcurl C++问题的帖子请求:s
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- Visual C++GC接口如何启用它以及要包含哪个库
- 在多个核心中处理一个HTTP请求
- Windows.h与GLFW.h的接口
- 当字段可以为null时,如何使用C++接口在Avro中写入数据
- 提供与TMP和SFINAE的通用接口
- 为重写std::exception的库生成swig接口时出错
- 内联如何影响模块接口中的成员函数
- COM 接口 c# 封送数组数组
- 如何在 SCIP C++ 接口中获取 MILP 约束矩阵中的系数值
- 重载 -> shared_ptr 个实例中的箭头运算符<interface>,接口中没有纯虚拟析构函数
- 如何绑定 C++ gRPC 客户端的网络接口
- 错误:请求非类类型为"MULTIMEDIA_FILME [500]"的成员|
- 使用 Winsock2.h C++向不和谐 API 发送 HTTP 请求时出现问题
- 模板化接口 - 创建一个泛型模板类以返回任何容器
- 如何从实现接口的模板化类实例访问结构
- libcurl多接口单易接口多请求