URLDownload
Mit dem URLDownload Step kann man eine einzelne URL aufrufen (http://, https://) und den Inhalt als Datei (FILE) herunterladen.
Für HTTP werden alle gängigen Methoden wie GET, POST, PUT, DELETE, HEAD und PATCH unterstützt.
Weiterhin kann der Step auch verwendet werden um Dateien hochzuladen (analog zu einem Datei-Upload-Formular auf einer Website) oder API-Calls an eine REST-API abzuschicken.
REST-API Anbindungen
Obwohl der URLDownload Step auch für REST-API Anbindungen genutzt werden kann, empfehlen wir dafür den Step APICall, da dieser auch die Verarbeitung der Response im JSON- oder XML-Format unterstüzt. Um mehrere HTTP-Requests hintereinander (pro Spreadsheet-Zeile) auszuführen empfehlen wir den Step SpreadsheetURLDownload.
Tutorial: REST-API Anbindung
Lernen Sie in unserem Tutorial REST API Anbindung mit Synesty, wie man jede beliebige HTTP-API mit JSON oder XML anbinden kann - auch ohne Add-Ons von Synesty und ohne Programmierung in PHP, Java oder Javascript.
Unterschied zwischen APICall, SpreadsheetURLDownload und URLDownload
Dieses Cookbook beschreibt den Unterschied der drei Steps.
Konfiguration
Der abgesendete Request kann über verschiedene Parameter beeinflußt werden wie z.B.:
- requestBody
- contentType
- requestHeader
- timeout
- HTTP errorStatusCodes
- fileUpload
- Basic Auth (username, password)
Alle Parameter werden weiter unten beschrieben.
HTTP Multipart Requests
Siehe APICall#HTTPMultipartRequests.
HTTP Error Codes
Im Feld errorStatusCodes können sie konfigurieren welche HTTP Status als Fehler gewertet werden. Standardmäßig (leeres Feld) sind Antworten mit einem HTTP-Statuscode größer oder gleich 300 ein Fehler. Im Falle einer Weiterleitung (Status 3xx) bei einem GET Request wird der Status Code zur weitergeleiteten URL ausgewertet.
Sie können auch individuelle Status als Komma-separierte Liste im Feld angeben. Es ist auch möglich die Status in Form von Regulären Ausdrücken anzugegeben.
Beispiele:
- leer -> Fehler bei Status >= 300
- 401,407 -> Fehler bei Status Code 401 & 407
- 40[0-7],5[0-9][0-9] -> Fehler bei Status Code 400 bis 407 und 500 bis 599
- 40[135] -> Fehler bei Status Code 401, 403 und 405
- 3.*,4.*,5.* -> Fehler bei 300 – 599
Inputs
Das sind die Optionen, mit denen man den Step konfigurieren kann.
Name | Datentyp | Beschreibung | Pflichtfeld | Werte |
---|---|---|---|---|
account | ACCOUNT | Select a HTTP account for client certificate based authentication | Nein | |
host | STRING | Das ist die URL die heruntergeladen werden soll. (z.B. https://api.somewebservice.com/GetStock, https://www.mywebsite.com/products.csv). Unterstützte Protokolle sind http://, https://. Wenn das Protokoll weggelassen wird, wird es standartmäßig durch http:// ersetzt. | Ja | |
method | STRING | Die HTTP Methode (GET, POST, PUT, HEAD, PATCH, DELETE). | Ja |
|
username | STRING | Falls die URL mit HTTP BASIC AUTH geschützt ist. Das ist der Benutzername. | Nein | |
password | STRING | Das HTTP BASIC AUTH Passwort. | Nein | |
errorStatusCodes | STRING | kommagetrennte Liste von HTTP Status Codes bei denen der Flow anhält, z.B. 403,404,500. Leer lassen für alle Status Codes größer 300. | Nein | |
filename | STRING | Kann verwendet werden um Dateinamen der Antwort-Dateien zusammenzusetzen. Bitte geben sie die Dateierweiterung für den Dateinamen immer mit an (z.B. meinedatei.txt). Wenn leer wird der Dateiname automatisch gesetzt. | Nein | |
requestBody | STRING | Optional: Den HTTP request body direkt senden. Besonders nützlich bei der Kommunikation mit REST-APIs oder XML-Webdiensten, bei denen die ganze Anfrage in das Text Feld geschrieben wird. Kann nur bei der POST, PATCH, PUT HTTP Methode verwendet werden. Bei bodyContentType=multipart/form-data (oder Dateiupoad mit fileToUpload) kann man auch Form-Parameter übermitteln z.B. ¶m1=value1¶m2=value2 (wenn die URL/host keine Parameter hat, dann ohne das erste &-Zeichen). Es ist auch für bessere Lesbarkeit möglich, pro Zeile einen Parameter zu verwenden. Wichtig ist, dass der Wert keine Zeilenumbrüche beinhaltet. Verwenden Sie ggf. die Funktion ${urlEncode("one & one is two")}, um Werte url-encodiert zu schicken. Für mehrzeilige Werte sollte die Freemarker <#compress> function probiert werden. | Nein | |
fileToUpload | FILE | Optional: Sendet diese Datei im request body, ähnlich dem Upload-Formular auf einer Webseite. | Nein | |
fileParameterName | STRING | Optional: Der Name des HTTP-Anfrage-Parameters unter dem die Datei hochgeladen wird (Default wenn leer: 'upfile'). | Nein | |
headerContentType | STRING | Der HTTP header Inhalts Typ | Nein |
|
bodyContentType | STRING | Optional: Der Content type des requestBody. | Nein |
|
requestHeaders | STRING | Optional: Zusätzliche HTTP request headers, die der HTTP Anfrage als key=value (Schlüssel-Wert-Paar) hinzugefügt werden (ein Paar pro Zeile). | Nein | |
timeoutInSeconds | STRING | Optional: HTTP Verbingungs- und Lese-Timeout in Sekunden. Default: 60s. Wenn der Server für die Antwort länger als timeoutInSeconds braucht, schlägt der Step fehl und gibt ienen Fehler aus. | Nein | |
sslCertificates | STRING | Experten-Einstellungen für https-urls: Unter normalen Umständen resultieren URLs mit Selbst-Signierten SSL Zertifikaten in einem Fehler. Dieser kann übergangen werden wenn diese Einstellung auf 'Selbst-Signierten SSL Zertifikaten vertrauen' gesetzt wird. Diese Einstellung stellt aber ein Sicherheitsrisiko dar, da schadhafte Seiten dies missbrauchen könnten um sensitive Informationsn zu stehlen. Nur benutzen, wenn Sie wissen was Sie tun!!! | Nein |
|
responseEncoding | STRING | Diese Option nur verwenden, wenn der Ausgabe-Typ aus String gesetzt ist und der response header keinen gültigen Zeichensatz enthält. | Nein |
|
outputtype | STRING | Der Typ der Ausgabe des Steps. (Anmerkung: String ist veraltet und sollte nur während der Entwicklung zum debuggen genutzt werden. Könnte ohne weiteren Hinweis in der Zukunft entfernt werden.) | Nein |
|
Outputs
Das sind die Ergebnisse des Steps, die von nachfolgenden Steps, nach der Ausführung verwendet werden können.
Name | Datentyp | Beschreibung | Pflichtfeld | Werte |
---|---|---|---|---|
file | FILE | Die heruntergeladene Datei (nur wenn der Ausgabetyp 'Datei' ausgewählt ist). | Ja | |
urlcontent | STRING | Der heruntergeladene Inhalt als STRING (Nur wenn der Ausgabetyp 'string' ausgewählte ist). Anmerkung: String ist veraltet und sollte nur während der Entwicklung zum debuggen genutzt werden. Könnte ohne weiteren Hinweis in der Zukunft entfernt werden. | Ja | |
statusCode | STRING | Der HTTP Status Code der Antwort. | Ja | |
statusText | STRING | Der HTTP Status Text der Antwort. | Ja | |
responseTimeInMillis | NUMBER | Die Antwort Zeit. | Ja | |
responseSize | NUMBER | DIe Grüße des Antwort in bytes. | Ja | |
responseHeaders | STRING | Die HTTP-Antwort headers. | Ja | |
requestBody | STRING | Der gesendete HTTP-requestbody. | Ja |