gpt4 book ai didi

c - 从 curl_easy_perform() 获取数据的 libcurl 问题

转载 作者:太空狗 更新时间:2023-10-29 17:23:17 25 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我实际上如何获取 curl_easy_perform() 返回的站点数据到我可以使用的变量中。当它执行时,我只看到它在终端上一闪而过。顺便说一下,我正在使用 C。

有什么想法吗?谢谢。

编辑:这是我正在使用的代码(我正在访问 Twitter Streaming API,我做的是否正确?)

int main(void)
{
CURL *curl;
CURLcode res;

curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://stream.twitter.com/1/statuses/filter.json?track=http");
curl_easy_setopt(curl, CURLOPT_USERPWD, "JEggers2:password");
res = curl_easy_perform(curl);

/* always cleanup */
curl_easy_cleanup(curl);


}
return 0;
}

最佳答案

要将数据转成字符串,需要设置写回调函数:

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback_func);

此外,接收数据的字符串变量的地址:

curl_easy_setopt(curl, CURLOPT_WRITEDATA, &str)

回调函数如下所示:

size_t callback_func(void *ptr, size_t size, size_t count, void *stream)
{
/* ptr - your string variable.
stream - data chuck you received */

printf("%.*s", size, (char*)stream);
}

因为您不知道要接收的数据的总大小,所以您需要重新分配指针以将其放入字符串中。

关于c - 从 curl_easy_perform() 获取数据的 libcurl 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4751785/

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