2
У меня есть следующий вопрос: как я могу записать данные, возвращаемые с помощью http-response в буфере char *
? Я нашел несколько подходов:Получение данных после curl_easy_perform
- использование
CURLOPT_WRITEDATA
илиCURLOPT_WRITEFUNCTION
. но дляCURLOPT_WRITEDATA
требуется указатель на файл (FILE *
). использованиеCURLOPT_WRITEFUNCTION
с функцией обратного вызова представляется мне как quirk ... - использование
curl_easy_send
иcurl_easy_recv
. но в этом случае мне нужно будет написать все заголовки с руками ...
Есть ли какой-нибудь другой, более элегантный подход? например передать char *
буферный указатель на некоторую функцию, чтобы получить ответ http.
так ... я должен сделать это в разных потоках? – milo
Хороший ответ, вот как это должно быть сделано. О, и не забывайте, что ptr может быть всего лишь фрагментом всего ответа, в зависимости от того, какие параметры вы задали с curl_easy_setopt. – BROCK
Кажется немного глупым, что завиток не дает «сколько данных вы указали в буфере, который я дал вам». –