Curl - функция заголовка и функция записи, вызываемая при возникновении ошибки (доступ запрещен) - PullRequest
0 голосов
/ 17 февраля 2012

Я использую 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);

1 Ответ

0 голосов
/ 18 февраля 2012

Обратные вызовы заголовка и тела получают заголовок и содержимое независимо от того, какой ответ HTTP получен, если вы не установили CURLOPT_FAILONERROR .

...