16

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

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

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

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

谢谢!

4

1 回答 1

18

curl_easy_perform() 是否阻塞,直到整个请求被发送并且回复被回调函数处理

是的,这正是它的作用。

(如果你想要一个非阻塞的行为,libcurl 的多接口是要走的路。)

于 2013-03-09T14:54:29.693 回答