Die Methode Post initialisiert die HTTP-Methode zur Übergabe der zur verarbeitenden Daten an die angegebene Ressource.
Durch Verwendung der Eingänge i_sHost (obligatorisch) und i_sResource wird der Standard-Header einer HTTP-Anfrage erstellt. Wenn zusätzliche Informationen im Header hinzugefügt werden müssen, müssen diese über den Eingang i_anyAdditionalHeader übergeben werden. Die diesem Eingang zugewiesenen Daten werden nicht geprüft. Am Eingang i_anyResponseBuffer müssen Sie einen Puffer mit ausreichender Größe zur Speicherung der gesamten vom Server empfangenen Antwort zuweisen.
Die Eingänge i_anyContent und i_udiContentLength legen den zu übergebenden Inhalt fest.
Der Rückgabewert der Methode ist vom Typ BOOL und gibt an, ob die Ausführung der Methode erfolgreich war (TRUE) oder nicht (FALSE). Werten Sie die Diagnoseausgänge der Methode aus, wenn der Rückgabewert FALSE sein sollte. Ein von diesen Ausgängen signalisierter Fehler braucht nicht zurückgesetzt zu werden. Zum Abrufen des Verarbeitungsstatus muss die Eigenschaft State verwendet werden.
Ein Aufruf der Methode Post ist nur im Zustand Connected zulässig.
Das folgende Beispiel zeigt, wie eine HTTP-Anfrage nach dem Aufruf der Methode Post aussieht.
Methodenaufruf:
sAdditionalHeader := 'Content-Type: application/json$r$nConnection: Keep-Alive';
sContent := 'This is the content!';
fbHTTP.Post( i_sRessource:= 'example',
i_sHost:= 'se.com',
i_anyAdditionalHeader:= sAdditionalHeader,
i_anyContent:= sContent,
i_udiContentLength:= 20,
i_anyResponseBuffer:= sResponse);
Resultierende HTTP-Anfrage:
POST /example HTTP/1.1
Host: se.com
Content-Length: 20
Content-Type: application/json
Connection: Keep-Alive
This is the content!
Schritt |
Beschreibung |
---|---|
1 |
Ausgangszustand: Connected |
2 |
Funktionsaufruf |
3 |
Zustand: SendingRequest, andernfalls wird ein Fehler erkannt. |
4 |
Endzustand: ResponseAvailable, andernfalls wird ein Fehler erkannt. |
HINWEIS: Wenn Online-Änderungen vorgenommen werden, während der Funktionsbaustein eine Post-Anfrage verarbeitet, wird die Ausführung abgebrochen, um eine potenzielle Zugriffsverletzung durch die Verarbeitung fehlerhafter Zeigeradressen zu vermeiden.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_sResource |
STRING[GPL.Gc_uiMaxLengthOfResource] |
Gibt die Ressource auf dem Host an, die über die Anfrage erreicht werden soll. |
i_sHost |
STRING[GPL.Gc_uiMaxHostSize] |
Gibt die Adresse des Hosts an, falls erforderlich in Verbindung mit dem Port. |
i_anyAdditionalHeader |
ANY_STRING |
Gibt die zur HTTP-Anfrage hinzuzufügenden zusätzlichen Header an. |
i_anyContent |
ANY |
Weist den Puffer mit dem gemeinsam mit der HTTP-Anfrage zu übergebenden Inhalt zu. |
i_udiContentLength |
UDINT |
Länge des Inhalts in Byte. |
i_anyResponseBuffer |
ANY |
Puffer zur Speicherung der Antwort vom Server. |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_xError |
BOOL |
Wenn dieser Ausgang auf TRUE gesetzt wird, wurde ein Fehler identifiziert. Für weitere Informationen, siehe q_etResult und q_etResultMsg, |
q_etResult |
Stellt Diagnose- und Statusinformationen in Form numerischer Werte bereit. |
|
q_sResultMsg |
STRING[80] |
Stellt zusätzliche Diagnose- und Statusinformationen in Form von Textmeldungen bereit. |