Как разобрать HTTP-заголовки с libcurl?

Я оглядывался и очень удивляюсь, что, похоже, нет средств, с помощью которых можно разобрать заголовки в основном в libcurl (который, кажется, является канонической библиотекой C для http в эти дни).

Ближайшая вещь, которую я нашел, - это список рассылки, в котором кто-то предложил кому-то еще искать в архивах списков рассылки.

Единственным средством, предоставляемым libcurl через setopt, является CURLOPT_HEADERFUNCTION, который будет подавать ответы заголовка по одной строке за раз.

Это кажется слишком примитивным, учитывая, что заголовки могут охватывать несколько строк. В идеале это следует делать правильно (желательно самой библиотекой) и не оставлять разработчикам приложений постоянно изобретать.

Edit

Пример наивной вещи не работает, см. следующий пример с примером кода libcurl и правильно сформированным HTTP-ответом, который он не может проанализировать: < а2 >

Ответ 1

Был более года, поэтому я думаю, что я закрою это как "вручную". Или:

Если у вас проблемы cURL, я плохо себя чувствую для вас, сын,

У вас есть многострочные заголовки и нужно разобрать каждый.

Ответ 2

libcurl считывает весь заголовок и отправляет его как одну полную строку для обратного вызова.

"Продолжение" Заголовки HTTP-заголовков в семействе HTTP 1.1 RFC 7230 не разрешены, и до этого они практически исчезли.