Die Verwendung der Low-Level-Schnittstelle von hURL ist schwieriger als die Verwendung der High-Level-Schnittstelle, da Sie damit direkt auf die APIs von curl zugreifen können. Das bedeutet, dass Sie sich zuerst mit der API von curl vertraut machen sollten, damit Sie wissen, wie sie gestaltet ist und wie sie ihren Zwecken dienen kann.
Grundsätzlich beinhaltet die direkte Verwendung einer Curl-API die folgenden drei Schritte:
Um beispielsweise eine Datei mit der Easy-Schnittstelle von curl zu übertragen, können Sie den folgenden Code verwenden:
@REQUIRE "hurl" ; diese Funktion wird aufgerufen, wenn es neue Daten gibt Function p_WriteData(data$) WriteBytes(1, data$) EndFunction OpenFile(1, "test.html", #MODE_WRITE) ; Easy-Objekt erstellen und konfigurieren e = hurl.Easy({URL = "https://www.paypal.com/", WriteFunction = p_WriteData, FollowLocation = True}) ; Daten übertragen e:Perform() ; Easy-Objekt schliessen e:Close() CloseFile(1) |
Der obige Code lädt die Seite unter https://www.paypal.com/ herunter
und speichert sie mit Hilfe der Easy-Schnittstelle von curl in der
Datei test.html
. Dies geschieht, indem zuerst ein Easy-Objekt
mit hurl.Easy() erstellt und dann die Optionen #CURLOPT_URL
,
#CURLOPT_WRITEFUNCTION
und #CURLOPT_FOLLOWLOCATION
auf
diesem Easy-Objekt gesetzt werden.
Wie oben gezeigt, können die curl-Optionen direkt beim Erstellen von curl-Objekten eingestellt werden. Alternativ können Sie auch ein leeres curl-Objekt erstellen und die Optionen anschließend so einstellen:
e = hurl.Easy() e:SetOpt_URL("https://www.paypal.com/") e:SetOpt_WriteFunction(p_WriteData) e:SetOpt_FollowLocation(True) |
Dieser Code hat die gleiche Funktion wie der Code im entsprechenden Abschnitt oben. Der einzige Unterschied besteht darin, dass die Optionen nicht zur Erstellungszeit, sondern nach der Erstellung festgelegt werden. Darüber hinaus können Sie nach der Objekterstellung auch mehrere Optionen auf einmal einstellen. Hier ist eine weitere Alternative für die beiden obigen Codeausschnitte:
e = hurl.Easy() e:SetOpt({URL = "https://www.paypal.com/", WriteFunction = p_WriteData, FollowLocation = True}) |
Schließlich können Sie auch easy:SetOpt() verwenden, um Curl-Optionen für Easy-Curl-Zugriffe festzulegen. Es gibt also sogar eine vierte Möglichkeit, das zu tun, was die obigen Code-Ausschnitte tun. Hier ist sie:
e = hurl.Easy() e:SetOpt(#CURLOPT_URL, "https://www.paypal.com/") e:SetOpt(#CURLOPT_WRITEFUNCTION, p_WriteData) e:SetOpt(#CURLOPT_FOLLOWLOCATION, True) |
Weitere Informationen über die Funktion der verschiedenen Optionen von curl finden Sie in den nun folgenden Kapiteln.