C++ curl callback



谁能告诉我为什么我们需要一个回调在一些curl选项,如CURLOPT_WRITEFUNCTION?

我在c++中使用了下面的代码,并且在有或没有CURLOPT_WRITEFUNCTION回调的情况下得到了相同的结果,因此使用回调似乎令人困惑。

int main(){
CURL *curl = curl_easy_init();
CURLcode response;
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com");
response=curl_easy_perform(curl);
curl_easy_cleanup(curl);
}    
}

默认情况下,libcurl只是将下载的数据写入STDOUT。

如果你只是想改变它写数据到哪个FILE*,你可以使用CURLOPT_WRITEDATA选项。

但是,如果你想改变它写数据的方式,例如写到FILE*以外的东西,你可以使用CURLOPT_WRITEFUNCTION回调。

例如,请参阅这些使用CURLOPT_WRITEFUNCTION自定义下载的示例:

https://curl.se/libcurl/c/ftpsget.html

https://curl.se/libcurl/c/getinmemory.html

https://curl.se/libcurl/c/http2-pushinmemory.html

callback是一个选项,它有自己的特定属性,对于想要使用这些属性的人可能很有用。参见下面的链接https://curl.se/libcurl/c/CURLOPT_WRITEFUNCTION.html

最新更新