4D v14.3

HTTP Request

Home

 
4D v14.3
HTTP Request

HTTP Request 


 

HTTP Request ( httpMethode ; url ; Inhalt ; Antwort {; KopfteilNamen ; KopfteilWerte}{; *} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
httpMethode  Text in HTTP Methode für Anfrage
url  Text in URL, an die die Anfrage gesendet wird
Inhalt  Text, BLOB, Bild, Objekt in Inhalt des Hauptteils der Anfrage
Antwort  Text, BLOB, Bild, Objekt in Ergebnis der Anfrage
KopfteilNamen  Array Text in Kopfteilnamen der Anfrage
in zurückgegebene Kopfteilnamen
KopfteilWerte  Array Text in Kopfteilwerte der Anfrage
in zurückgegebene Kopfteilwerte
Operator in Mit Stern: Verbindung wird beibehalten (keep-alive)
Ohne Stern: Verbindung wird automatisch geschlossen
Funktionsergebnis  Lange Ganzzahl in 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 Meldung
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

(*) Während HTTPS Anfragen wird die Gültigkeit des Zertifikats nicht geprüft

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:

  • Für Text: text/plain - UTF8
  • Für BLOBs: application/byte-stream
  • Für Bilder: bekannter MIME Typ (der Beste für Web)
  • Für Objekte C_OBJECT: application/json

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:

  • Text: Wenn als Ergebnis ein Text, codiert in UTF16, oder eine Referenz auf einen XML Baum erwartet wird
  • BLOB: Wenn ein Ergebnis in binärer Form erwartet wird
  • Bild: Wenn als Ergebnis ein Bild erwartet wird
  • Objekt C_OBJECT: Wenn als Ergebnis ein Objekt erwartet wird

Entspricht das vom Server zurückgegebene Ergebnis nicht dem Variablentyp von Antwort, wird es leer gelassen und die Systemvariable OK wird auf 0 gesetzt.

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. Verwendet die Funktion ein ungültiges Server Zertifikat (abgelaufen oder aufgehoben), gibt sie 0 zurück und Fehler 901 (Server Zertifikat ist ungültig) wird generiert. Sie können ihn ü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)

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: HTTP Client
Nummer: 1158

 
GESCHICHTE 

New
Erstellt: 4D v13
Geändert: 4D v14

 
SIEHE AUCH 

HTTP Get

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)

Geerbt von : HTTP Request ( 4D v13.5)