我正在使用 curl
发送 POST
和 GET
请求,我使用回调函数从这些请求中获取回复。这些 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/