C++ CURL 中write_callback
时间: 2023-10-02 19:12:58 浏览: 240
在 C++ CURL 中,write_callback 是一个回调函数,用于接收 CURL 请求返回的数据。该回调函数的原型如下:
```c++
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata);
```
参数说明:
- `ptr`:返回的数据指针。
- `size`:返回的数据块大小。
- `nmemb`:返回的数据块数量。
- `userdata`:用户自定义数据指针。
该回调函数的返回值为 size_t 类型,表示接收到的数据大小。在回调函数中,我们可以将接收到的数据写入文件或者处理其他操作。
下面是一个示例代码:
```c++
#include <iostream>
#include <curl/curl.h>
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) {
size_t total_size = size * nmemb;
std::cout << "Received data: " << std::string(ptr, total_size) << std::endl;
return total_size;
}
int main() {
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
```
在上面的示例代码中,我们通过 `curl_easy_setopt()` 函数设置了请求的 URL 和 write_callback 回调函数。在回调函数中,我们将接收到的数据打印出来。
阅读全文