La méthode Post lance la méthode HTTP pour soumettre les données à traiter à la ressource spécifiée.
L’en-tête par défaut de la requête HTTP est créé à l’aide des entrées i_sHost (obligatoire) et i_sResource. Si des informations supplémentaires doivent être ajoutées à l’en-tête, elles doivent être transmises par l’intermédiaire de l’entrée i_anyAdditionalHeader. Les données affectées à cette entrée ne sont pas vérifiées. Au niveau de l’entrée i_anyResponseBuffer, vous devez affecter une mémoire tampon de taille suffisante pour stocker l’intégralité de la réponse reçue du serveur.
Les entrées i_anyContent et i_udiContentLength spécifient le contenu à soumettre.
La valeur renvoyée par la méthode est de type BOOL et indique si l’exécution de la méthode a abouti (TRUE) ou non (FALSE). Évaluez les messages de diagnostic de la méthode, si la valeur renvoyée est FALSE. Une erreur indiquée par ces messages n’exige aucune réinitialisation. La propriété State doit être utilisée pour obtenir l’état du traitement.
Un appel de la méthode Post n’est autorisé qu’à l’état Connected.
L’exemple ci-après montre à quoi ressemble la requête HTTP après l’appel de la méthode Post.
Appel de méthode :
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);
Requête HTTP résultante :
POST /example HTTP/1.1
Host: se.com
Content-Length: 20
Content-Type: application/json
Connection: Keep-Alive
This is the content!
Phase |
Description |
---|---|
1 |
État initial : Connected |
2 |
Appel de fonction |
3 |
État : SendingRequest, sinon une erreur est détectée |
4 |
État final : ResponseAvailable, sinon une erreur est détectée |
Entrée |
Type de données |
Description |
---|---|---|
i_sResource |
STRING[GPL.Gc_uiMaxLengthOfResource] |
Spécifie la ressource sur l’hôte à atteindre par la requête. |
i_sHost |
STRING[GPL.Gc_uiMaxHostSize] |
Spécifie l'adresse de l'hôte, et si nécessaire, étendue au port. |
i_anyAdditionalHeader |
ANY_STRING |
Spécifie les en-têtes supplémentaires à ajouter à la requête HTTP. |
i_anyContent |
ANY |
Affecte la mémoire tampon dans laquelle est stocké le contenu à soumettre avec la requête HTTP. |
i_udiContentLength |
UDINT |
Longueur du contenu en octets. |
i_anyResponseBuffer |
ANY |
Mémoire tampon permettant de stocker la réponse du serveur. |
Sortie |
Type de données |
Description |
---|---|---|
q_xError |
BOOL |
Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. |
q_etResult |
Fournit des informations de diagnostic et d'état sous la forme d'une valeur numérique. |
|
q_sResultMsg |
STRING[80] |
Fournit des informations de diagnostic et d'état sous la forme d'un message textuel. |