Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
HTTP Request
|
HTTP Request ( httpMethode ; url ; Inhalt ; Antwort {; KopfteilNamen ; KopfteilWerte}{; *} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
httpMethode | Text |
![]() |
HTTP Methode für Anfrage | |||||
url | Text |
![]() |
URL, an die die Anfrage gesendet wird | |||||
Inhalt | Text, BLOB, Bild, Objekt |
![]() |
Inhalt des Hauptteils der Anfrage | |||||
Antwort | Text, BLOB, Bild, Objekt |
![]() |
Ergebnis der Anfrage | |||||
KopfteilNamen | Array Text |
![]() |
Kopfteilnamen der Anfrage | |||||
![]() |
zurückgegebene Kopfteilnamen | |||||||
KopfteilWerte | Array Text |
![]() |
Kopfteilwerte der Anfrage | |||||
![]() |
zurückgegebene Kopfteilwerte | |||||||
* | Operator |
![]() |
Mit Stern: Verbindung wird beibehalten (keep-alive) Ohne Stern: Verbindung wird automatisch geschlossen |
|||||
Funktionsergebnis | Lange Ganzzahl |
![]() |
HTTP Status Code | |||||
Die Funktion HTTP Request erlaubt, alle Arten von HTTP Anfragen an eine spezifische URL zu senden und die HTTP Server Antwort zu empfangen.
Im Parameter httpMethode übergeben Sie die HTTP Methode der Anfrage. Sie können eine der folgenden Konstanten unter dem Thema HTTP Client verwenden:
Konstante | Typ | Wert | Kommentar |
HTTP DELETE method | Zeichenkette | DELETE | Siehe unter RFC 2616 |
HTTP GET method | Zeichenkette | GET | Siehe unter RFC 2616. Entspricht der Verwendung der Funktion HTTP Get. |
HTTP HEAD method | Zeichenkette | HEAD | Siehe unter RFC 2616 |
HTTP OPTIONS method | Zeichenkette | OPTIONS | Siehe unter RFC 2616 |
HTTP POST method | Zeichenkette | POST | Siehe unter RFC 2616 |
HTTP PUT method | Zeichenkette | PUT | Siehe unter RFC 2616 |
HTTP TRACE method | Zeichenkette | TRACE | Siehe unter RFC 2616 |
Im Parameter url übergeben Sie die URL, an welche die Anfrage gesendet werden soll. Die Syntax lautet:
http://[{user}:[{password}]@]host[:{port}][/{path}][?{queryString}]
Sie können z.B. folgende Strings übergeben:
http://www.myserver.com
http://www.myserver.com/path
http://www.myserver.com/path?name="jones"
https://www.myserver.com/login (*)
http://123.45.67.89:8083
http://john:smith@123.45.67.89:8083
http://[2001:0db8:0000:0000:0000:ff00:0042:8329]
http://[2001:0db8:0000:0000:0000:ff00:0042:8329]:8080/index.html (**)
(*) Während HTTPS Anfragen wird die Gültigkeit des Zertifikats nicht geprüft.
(**) Weitere Informationen zu IPv6 Adressen in urls finden Sie unter RFC 2732.
Im Parameter Inhalt übergeben Sie den Hauptteil der Anfrage. Die hier übergebenen Daten richten sich nach der HTTP Methode der Anfrage.
Sie können Daten vom Typ Text, BLOB, Bild oder Objekt senden. Ist kein Typ angegeben, werden folgende Typen verwendet:
Nach Ausführen des Befehls empfängt der Parameter Antwort das Ergebnis der vom Server zurückgegebenen Anfrage. Dieses Ergebnis entspricht dem Hauptteil der Antwort, d.h. ohne Kopfteile. In Antwort können Sie verschiedene Variablentypen übergeben:
Hinweis: Wird in Anwort eine Textvariable übergeben, versucht 4D die vom Server zurückgegebenen Daten zu entschlüsseln. 4D versucht zuerst, den Zeichensatz vom content-type Kopfteil zu finden, dann den Inhalt vom Typ BOM, und zuletzt jeden http-equiv Zeichensatz (in html Inhalt) bzw. encoding Attribut (für xml). Wird kein Zeichensatz gefunden, versucht 4D die Antwort in ANSI zu entschlüsseln. Schlägt die Konvertierung fehl, ist der Ergebnistext leer. Sind Sie unsicher, ob der Server eine Information in einem Zeichensatz oder ein BOM zurückgibt, kennen dagegen die Codierung, ist es passender, Antwort in BLOB zu übergeben und die Funktion Convert to text aufzurufen.
Wenn Sie eine Objekttypvariable im Antwort parameter übergeben und die Anfrage ein Ergebnis mit einem Text-Content-Type liefert, versucht 4D, den Inhalt als JSON zu parsen und gibt das geparste Ergebnis als Objekt zurück. Andernfalls wird ein 4D.Blob Objekt zurückgegeben.
Wenn das vom Server zurückgegebene Ergebnis nicht dem Typ der Antwort variablen entspricht, wird es leer gelassen.
In KopfteilNamen und KopfteilWerte übergeben Sie Arrays mit den Namen und Werten der Kopfteile der Anfrage. Diese Arrays enthalten nach Ausführen der Methode die Namen und Werte der vom HTTP Server zurückgegebenen Kopfteile. So können Sie vorallem Cookies verwalten.
Mit dem Parameter * aktivieren Sie den keep-alive Mechanismus für die Server Verbindung. Dieser Parameter wird standardmäßig weggelassen, d.h. keep-alive ist nicht aktiviert.
Die Funktion gibt einen standardmäßigen HTTP Status Code (200=OK usw.) zurück, wie vom Server zurückgegeben. Die Liste der HTTP Status Codes finden Sie unter RFC 2616.
Kommt die Verbindung zum Server wegen Netzwerkproblemen (DNS ist fehlgeschlagen, Server ist nicht erreichbar, ...) nicht zustande, gibt die Funktion 0 zurück und ein Fehler wird erzeugt. Sie können Fehler über eine Methode mit dem Befehl ON ERR CALL abfangen.
Datensatz aus einer remote Anwendung löschen:
C_TEXT($response)
$body_t:="{record_id:25}"
$httpStatus_l:=HTTP Request(HTTP DELETE method;"Beispielanwendung.com";$body_t;$response)
Hinweis: Sie müssen die Anfrage auf dem Remote Server in passender Weise bearbeiten, HTTP Request verwaltet nur die Anfrage und das zurückgegebene Ergebnis.
Datensatz in einer remote Anwendung hinzufügen:
C_TEXT($response)
$body_t:="{fName:'Jonas',fName:'Danner'}"
$httpStatus_l:=HTTP Request(HTTP PUT method;"Beispielanwendung.com";$body_t;$response)
Hinweis: Sie müssen die Anfrage auf dem Remote Server in passender Weise bearbeiten, HTTP Request verwaltet nur die Anfrage und das zurückgegebene Ergebnis.
Datensatz in JSON in einer remote Datenbank hinzufügen:
C_OBJECT($content)
OB SET($content;"Nachname";"Danner";"Vorname";"Jonas")
$result:=HTTP Request(HTTP PUT method;"Beispielanwendung.com";$content;$response)
Produkt: 4D
Thema: HTTP
Nummer:
1158
Erstellt: 4D v13
Geändert: 4D v14
Geändert: 4D v16 R4
4D Programmiersprache ( 4D v20 R7)