libcurl 在 writefunction 回调后继续 运行
libcurl continue running after writefunction callback
我正在尝试将 C 中的 libcurl 库与 pushbullet api 一起使用。我正在尝试连接到 https://stream.pushbullet.com/streaming/ 的流。问题是一旦回调函数在接收到任何数据时被调用,连接就会关闭。我想无限期地保留它 运行 并让它在每次收到新数据时调用回调函数。
这是我试过的代码
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int getwss_cb(char *data) {
printf("Received data: %s\n", data);
}
int getwss(void) {
CURL *easyhandle = curl_easy_init();
curl_easy_setopt(easyhandle, CURLOPT_URL, "https://stream.pushbullet.com/streaming/<access-token>");
curl_easy_setopt(easyhandle, CURLOPT_WRITEFUNCTION, getwss_cb);
curl_easy_perform(easyhandle);
return 0;
}
基本上我需要 getwss() 函数继续 运行 即使在 运行 getwss_cb()
之后
您的回调没有使用正确的原型,也没有 return 正确的 return 代码:
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata);
在 CURLOPT_WRITEFUNCTION 选项的文档中查看解释回调及其应该做什么的完整文档 return。
另请注意,传递给回调的数据不是零终止的,因此您不能只打印 f-%s 它。
我正在尝试将 C 中的 libcurl 库与 pushbullet api 一起使用。我正在尝试连接到 https://stream.pushbullet.com/streaming/ 的流。问题是一旦回调函数在接收到任何数据时被调用,连接就会关闭。我想无限期地保留它 运行 并让它在每次收到新数据时调用回调函数。
这是我试过的代码
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int getwss_cb(char *data) {
printf("Received data: %s\n", data);
}
int getwss(void) {
CURL *easyhandle = curl_easy_init();
curl_easy_setopt(easyhandle, CURLOPT_URL, "https://stream.pushbullet.com/streaming/<access-token>");
curl_easy_setopt(easyhandle, CURLOPT_WRITEFUNCTION, getwss_cb);
curl_easy_perform(easyhandle);
return 0;
}
基本上我需要 getwss() 函数继续 运行 即使在 运行 getwss_cb()
之后您的回调没有使用正确的原型,也没有 return 正确的 return 代码:
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata);
在 CURLOPT_WRITEFUNCTION 选项的文档中查看解释回调及其应该做什么的完整文档 return。
另请注意,传递给回调的数据不是零终止的,因此您不能只打印 f-%s 它。