我正在使用curl
发送POST
和GET
个请求,我使用回调函数来获取这些请求的回复。这些callback
函数是静态成员函数,它们又调用非静态成员函数(您不能直接在curl
中使用非静态成员函数,因此这种解决方法)。
由于这些回调函数无法返回结果,因此我使用C ++类中的属性来存储回复。这一切都很好,但现在我的问题。 curl_easy_perform()
阻塞直到整个请求被发送并且回复由回调函数处理或者我的程序在curl_easy_perform()
之后继续并且当收到来自请求的回复时它是否以某种方式被中断?
对我来说,重要的是我要确保我的属性中应该包含回复的数据已经存在,或者该属性中是否仍有旧数据,因为回调函数没有'但是被称为。
我意识到我的解释不是很清楚所以如果你不明白,请告诉我,我会试着改写它。
谢谢!
答案 0 :(得分:15)
curl_easy_perform()会阻塞,直到整个请求发送为AND 回复由回调函数处理
是的,完全它的作用。
(如果你想要一种非阻塞行为,libcurl's multi interface就是你的选择。)