Можно ли осуществлять потоковую передачу API с помощью библиотеки curl, аналогичной запросу Python (или какой-либо другой C ++ lib)? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть скрипт тестирования Python, который выполняет потоковую передачу API с использованием requests.post(). Это выглядит так:

response = requests.post(url_events, data="XYZ", stream=True, headers = {"A":"B"})
if (response.ok):
    for chunk in response.iter_content(chunk_size=256):
        print chunk

Я пытаюсь выяснить, как можно использовать ту же логику, но с использованием C ++. Из того, что я обнаружил, библиотека curl может помочь, однако я не могу найти, как передать поле data. Вот код, который у меня есть:

CURL* connection = curl_easy_init();
// set url
curl_easy_setopt(connection, CURLOPT_URL, url_events);

// set header
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "A:B");
code = curl_easy_setopt(connection, CURLOPT_HTTPHEADER, headers);

// set streaming callback that will print every received message
curl_easy_setopt(connection, CURLOPT_WRITEFUNCTION, printCallback);

// start connection
code = curl_easy_perform(connection);
// ... 
curl_easy_cleanup(connection);
curl_slist_free_all(headers);

Я просматривал файл curl.h, пытаясь найти способ указать поле данных, но, похоже, ничего не подходит (в зависимости от имени)?

Я на правильном пути? Будет ли использование curl правильным решением для моей задачи, или мне стоит заняться другими библиотеками C, C ++? Приветствуется пример, который выполняет ту же задачу, что и выше request.post(), или предложение, как добиться того же, используя curl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...