gpt4 book ai didi

c++ - curl_easy_perform 后接收数据

转载 作者:太空狗 更新时间:2023-10-29 12:21:40 35 4
gpt4 key购买 nike

我有以下问题:如何在 char * 缓冲区中写入通过 http-response 返回的数据?我发现了几种方法:

  1. 使用 CURLOPT_WRITEDATACURLOPT_WRITEFUNCTION。但是 CURLOPT_WRITEDATA 需要文件指针 (FILE *)。使用带有回调函数的 CURLOPT_WRITEFUNCTION 在我看来是个怪癖...
  2. 使用 curl_easy_sendcurl_easy_recv。但在这种情况下,我需要亲手编写所有 POST header ...

还有其他更优雅的方法吗?例如将 char * 缓冲区指针传递给某个函数以获取 http 响应。

最佳答案

实际上 CURLOPT_WRITEDATA 和 CURLOPT_WRITEFUNCTION 可以与任何指针类型一起使用。只要您的函数与该指针类型兼容。

例如:

    ...
client_t *client;
CURL *conn;
...
curl_easy_setopt(conn, CURLOPT_WRITEFUNCTION, read_data);
curl_easy_setopt(conn, CURLOPT_WRITEDATA, client);
...

static size_t read_data(void *ptr,
size_t size,
size_t nmemb,
client_t *client)
{
memcpy(client->data, ptr, size * nmemb);
return size * nmemb;
}

关于c++ - curl_easy_perform 后接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539137/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com