Bezeichnung
easy:SetOpt_WriteFunction -- setzt den Callback zum Schreiben empfangener Daten
Übersicht
easy:SetOpt_WriteFunction(write_callback[, userdata])
Beschreibung
Übergeben Sie eine Callbackfunktion. Diese Callbackfunktion wird von libcurl aufgerufen, sobald Daten empfangen werden, die gespeichert werden müssen. Bei den meisten Übertragungen wird dieser Callback mehrmals aufgerufen und jeder Aufruf liefert einen weiteren Datenblock.

Der erste Parameter, der an Ihre Callbackfunktion übergeben wird, ist eine Zeichenkette, die die soeben empfangenen binären Rohdaten enthält. Wenn Sie das optionale Argument userdata übergeben, wird der in userdata übergebene Wert als zweiter Parameter an Ihre Callbackfunktion übergeben. Der Parameter userdata kann einen beliebigen Typ haben.

Die Callback-Funktion wird in allen Aufrufen so viele Daten wie möglich übergeben, aber Sie dürfen keine Annahmen treffen. Es kann ein Byte sein, es können Tausende sein. Die maximale Menge an Stammdaten, die an den Schreibcallback übergeben wird, ist wie folgt definiert: #CURL_MAX_WRITE_SIZE (der übliche Standard ist 16K). Wenn #CURLOPT_HEADER aktiviert ist, wodurch die Header an den Schreibcallback übergeben werden, können Sie bis zu #CURL_MAX_HTTP_HEADER Bytes von Header erhalten, die an sie übergeben werden. Das bedeutet in der Regel 100K.

Diese Funktion kann mit Null-Byte-Daten aufgerufen werden, wenn die übertragene Datei leer ist.

Ihr Callback sollte die Anzahl der tatsächlich bearbeiteten Bytes zurückgeben. Wenn dieser Betrag von dem Betrag abweicht, der an Ihre Callbackfunktion übergeben wurde, wird der Bibliothek ein Fehler gemeldet. Dadurch wird die Übertragung abgebrochen und die verwendete libcurl-Funktion gibt #CURLE_WRITE_ERROR zurück.

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

Wenn Ihre Callbackfunktion #CURL_WRITEFUNC_PAUSE zurückgibt, wird diese Übertragung angehalten. Weitere Informationen finden Sie unter dem Befehl easy:Pause().

Eingaben
write_callback
Eingabewert
userdata
optional: Benutzerdaten, die an die Callback-Funktion übergeben werden sollen
Beispiel
Function p_WriteData(data$)
   WriteBytes(1, data$)
EndFunction
e:SetOpt_WriteFunction(p_WriteData)
Der obige Code installiert eine Schreibfunktion, die alle empfangenen Daten in die Datei mit dem Identifikator 1 schreibt.

Navigation zeigen