Я использую libcurl в своем коде, и первые несколько попыток curl_easy_perform() возвращают правильные значения, но после этого я вижу, что удаляются первые 800 или около того. Передана функция указателя write_data начинает указывать на поток после первых 800 байтов или около того.curl_easy_perform возвращает частичные результаты после точки
Вот фрагмент кода, который я использую -
ctx = curl_easy_init();
curl_easy_setopt(ctx, CURLOPT_POSTFIELDS, bodyData);
curl_easy_setopt(ctx, CURLOPT_URL, serverUrl);
curl_easy_setopt(ctx, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(ctx, CURLOPT_WRITEDATA, response);
res = curl_easy_perform(ctx);
curl_easy_cleanup(ctx);
EDIT: Хорошо, так что я вижу, что для некоторых запросов, то write_data вызывается дважды для одного curl_easy_perform(). Поэтому write_data получает первые x байтов, а затем считывает оставшиеся в следующий раз. Но моя функция write_data переопределяет указатель ответа каждый раз. Как узнать, нужна ли мне memcpy или конкатенация указателю ответа? Надеюсь, что смогу правильно описать ситуацию.
Благодаря
P
Есть рабочий код в https://curl.haxx.se/libcurl/c/getinmemory.html – danielapsmaior