Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorials:t4_usingcurl

cURL Tutorial

cURL ist ein einfaches Hilfsmittel zum absetzen von HTTP-Anfragen und ist deshalb gut geeignet Beispiele aus diesem wiki nachzuvollziehen und im Praxis-Einsatz verwendet zu werden.

In diesem Tutorial wollen wir die wichtigsten Funktionen von cURL für den täglichen Gebrauch mit Beispielen erläutern.

HTTP-Requests

HTTP-Requests der werden grundsätzlich so ausgeführt:

Windows:

curl -X GET "http://dbap-demo.dstore.de/default/engine/mi_GetUnits"

Unix-ähnliche Betriebssysteme (Mac OSX, Linux) mit Anzeige von formatiertem XML:

curl -X GET 'https://dbap-demo.dstore.de/default/engine/mi_GetUnits' | xmllint --format -

Insbesondere bei Query-Parametern ist die Verwendung der Betriebssystem-spezifischen Anführungszeichen zwingend erforderlich.

Sofern nichts weiter angegeben ist handelt es sich immer um GET-Requests.

POST-Requests

Einen POST-Request ohne Angabe eines Bodies setzt man so ab:

curl -X POST http://<Partner>-<Projekt>.dstore.de/.....

Der richtige Weg XML-Daten im Body per POST-Request zu senden ist:

curl -X POST -d @testbatch.xml --header "Content-Type: application/xml" http://<Partner>-<Projekt>.dstore.de/default/engine/execute

Ab webservice_SmartGate Version 1.22 wird als Content-Type, falls nicht angegeben, immer application/xml angenommen:

curl -X POST -d @testbatch.xml http://<Partner>-<Projekt>.dstore.de/default/engine/execute

Will man den Wert eines Parameters direkt einer Datei entnehmen:

curl -X POST 'http://<Partner>-<Projekt>.dstore.de/default/engine/mi_InsertTempdb_TextData?Format=text/plain' --data-urlencode Data@EineGrosseDatei.log 

Ausgabeumleitung

Das Ergebnis eines Requests schickt cURL auf die Standardausgabe. Diese kann dann je nach Betriebssystem gelesen und weiterverarbeitet werden. Beispiel:

curl -X GET "http://dbap-demo.dstore.de/default/engine/mi_GetUnits" > alleEinheiten.xml

Die Ausgabe der Header im „verbose“-Modus erfolgt nicht auf die Standardausgabe, so dass folgendes Beispiel den Body in eine Datei umleitet, die Header jedoch auf der Konsole angezeigt werden (sofern die Fehlerausgabe nicht umgeleitet ist).

curl -v -X GET "http://dbap-demo.dstore.de/default/engine/mi_GetUnits" > alleEinheiten.xml

Diverse Parameter

Im folgenden einige Optionen von cURL die in der Praxis immer mal wieder nützlich sind:

  • HTTP-Auth verwenden: --user <Benutzername> (dann wird man zur Angabe des Kennworts aufgefordert und muß nicht das Kennwort im Klartext in den Request schreiben)
  • Datenkompression anschalten: --compressed
  • Weitere Header schicken: --header '<Headername>: <Wert>'
  • Nicht vertrauenswürdige SSL-Zertifikate akzeptieren: --insecure
  • Bandbreite begrenzen: --limit-rate
  • Weiterleitungen folgen: --location und für https: --location-trusted
  • User-Agent setzen: --user-agent

Hinweis: Für viele Parameter gibt es äquivalente Kurz- und Langformen (Beispiel -u und --user).

tutorials/t4_usingcurl.txt · Zuletzt geändert: 13.11.2014 (Externe Bearbeitung)