c++ - curl_easy_perform() 是同步的还是异步的?

标签 c++ curl libcurl

我正在使用 curl 发送 POSTGET 请求,我使用回调函数从这些请求中获取回复。这些 callback 函数是静态成员函数,它们依次调用非静态成员函数(您不能在 curl 中直接使用非静态成员函数,因此为此解决方法)。

由于这些回调函数不能返回结果,我在我的 C++ 类中使用一个属性来存储回复。这一切都很好,但现在我的问题。 curl_easy_perform() 是否阻塞直到整个请求被发送并且回复由回调函数处理或者我的程序在 curl_easy_perform() 之后是否继续并且它在什么时候以某种方式被中断收到请求的回复了吗?

对我来说重要的是,我想确保我的属性中应该包含回复的数据已经存在,或者该属性中是否仍有旧数据,因为回调函数还没有被调用。

我知道我的解释不是很清楚,所以如果你不明白,请告诉我,我会尝试改写它。

谢谢!

最佳答案

Does curl_easy_perform() block until the entire request is send AND the reply is processed by the callback function

是的,正是它的作用。

(如果您想要非阻塞行为,libcurl's multi interface 是可行的方法。)

关于c++ - curl_easy_perform() 是同步的还是异步的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15311667/

相关文章:

C++ Trie 搜索性能

node.js - 乱码而不是 html 响应作为 node.request 中的正文

php - 使用实时 HTTP header

php - 使用 libcurl C++ 将响应数据存储到发布的变量中

c++ - 使用 libcurl 编写 HTTPS SOAP 客户端

c++ - 模板依赖类型名

c++ - 带有子库和包含目录的库,我如何在 CMake 中做到这一点?

c - 使用 InfluxDB 提高每秒写入点数

c++ - 使用 cmake 构建 QTCharts

java - 从 Java 代码调用 CURL 命令会引发异常