Bezeichnung
easy:SetOpt_HeaderFunction -- setzt die Callback-Funktion, die Header-Daten empfängt
Übersicht
easy:SetOpt_HeaderFunction(header_callback[, userdata])
Beschreibung
Übergibt eine Callback-Funktion. Diese Funktion wird von libcurl aufgerufen, sobald sie Header-Daten erhalten hat. Der Header-Callback wird einmal pro Header aufgerufen und nur komplette Header-Zeilen werden an den Callback übergeben. Das Parsen von Headers ist sehr einfach.

Der erste Parameter, der an Ihre Callback-Funktion übergeben wird, ist eine Zeichenkette, die die gerade empfangenen Header-Daten enthält. Wenn Sie das optionale Argument userdata übergeben, wird der Wert als zweiter Parameter an Ihre Callback-Funktion übergeben. Der Parameter userdata kann von beliebigem Typ sein.

Diese Callback-Funktion muss die Anzahl der tatsächlich behandelten Bytes zurückgeben. Wenn dieser Betrag von dem Betrag abweicht, der an Ihre Funktion übergeben wurde, wird ein Fehler an die Bibliothek gemeldet. Dies führt dazu, dass die Übertragung abgebrochen wird und die laufende libcurl-Funktion #CURLE_WRITE_ERROR zurückgibt.

Wenn Ihre Callback-Funktion nichts zurückgibt, signalisiert dies den Erfolg und die Übertragung wird fortgesetzt.

Ein kompletter HTTP-Header, die an diese Funktion übergeben wird, kann bis zu #CURL_MAX_HTTP_HEADER (100K) Bytes umfassen.

Es ist wichtig zu beachten, dass der Callback für den Header aller erhaltenen Antworten nach dem Einleiten einer Anfrage aufgerufen wird und nicht nur für die endgültige Antwort. Dazu gehören alle Antworten, die während der Authentifizierungsverhandlungen auftreten. Wenn Sie nur die Header aus der endgültigen Antwort bearbeiten müssen, müssen Sie die Header im Callback selbst sammeln und HTTP-Statuszeilen verwenden, z.B. Antwortgrenzen zu definieren.

Wenn ein Server eine verteilte verschlüsselte Übertragung sendet, kann er einen Anhang enthalten. Dieser Anhang ist identisch mit einem HTTP-Header und wenn ein solcher empfangen wird, wird er ebenfalls über diesen Callback an die Anwendung übergeben. Es gibt mehrere Möglichkeiten, um zu erkennen, dass es sich um einen Anhang und nicht um eine gewöhnlichen Header handelt:

1) es kommt nach dem Antwort-Body.
2) es kommt nach der letzten Header-Zeile (CR LF).
3) einen Anhang: Der Header wird unter den regulären Antwort-Headern erwähnt, welche Header im Anhang zu erwarten sind.

Für Nicht-HTTP-Protokolle wie FTP, POP3, IMAP und SMTP wird diese Funktion mit den Serverantworten auf die Befehle, die libcurl sendet, aufgerufen.

Eingaben
header_callback
Eingabewert
userdata
optional: Benutzerdaten, die an die Callback-Funktion übergeben werden sollen

Navigation zeigen