Я использую curl для выполнения загрузок, в большинстве случаев операция работает, как и ожидалось. Когда я начинаю загрузку, заголовки отправляются в мою функцию заголовка, данные в файл записи.
Проблема заключается в том, что в случае ошибки доступ к сообщению об ошибке запрещается, например, текст сообщения об ошибке отправляется как в функцию заголовка, так и в writeFile. Итак, что в итоге происходит, когда я выполняю повторную попытку, я нахожу файл размером около 1 КБ (сообщение об ошибке) и начинаю запись до конца.
Это ожидаемое поведение? (текст ошибки отправляется обеим функциям)
curl_easy_setopt(session, CURLOPT_HEADERFUNCTION, postCallback);
curl_easy_setopt(session, CURLOPT_WRITEFUNCTION,writeFile);
curl_easy_setopt(session, CURLOPT_WRITEDATA, &downloadContent);
lastCURLCode = curl_easy_perform(session);
curl_easy_getinfo (session, CURLINFO_RESPONSE_CODE, &lastHttpResponse);