El método Post inicia el método HTTP para enviar los datos que se procesarán al recurso especificado.
El encabezado predeterminado de la petición HTTP se crea mediante las entradas i_sHost (obligatoria) y i_sResource. Si es necesario añadir otra información al encabezado, esta deberá transmitirse a través de la entrada i_anyAdditionalHeader. Los datos asignados a esta entrada no se comprueban. En la entrada i_anyResponseBuffer, deberá asignar un búfer con un tamaño suficiente para almacenar la respuesta entera que se reciba del servidor.
Las entradas i_anyContent e i_udiContentLength especifican el contenido que se enviará.
El valor de retorno del método es de tipo BOOL e indica si la ejecución del método fue correcta (TRUE) o no (FALSE). Si el valor de retorno es FALSE, evalúe los resultados de diagnóstico del método. Los errores que indiquen estos resultados no necesitan un restablecimiento. La propiedad State debe utilizarse para obtener el estado de procesamiento.
Solo se permitirá invocar el método Post en el estado Connected.
En el siguiente ejemplo, se muestra el aspecto de una petición HTTP tras la llamada del método Post.
Llamada de método:
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);
Petición HTTP resultante:
POST /example HTTP/1.1
Host: se.com
Content-Length: 20
Content-Type: application/json
Connection: Keep-Alive
This is the content!
Transición de estado del cliente
Fase |
Descripción |
---|---|
1 |
Estado inicial: Connected |
2 |
Llamada de función |
3 |
Estado: SendingRequest; en caso contrario, se detecta un error. |
4 |
Estado final: ResponseAvailable; en caso contrario, se detecta un error. |
NOTA: Si se realizan modificaciones online mientras el bloque de funciones procesa una petición Post, la ejecución se cancelará para evitar una posible infracción de acceso provocada por el procesamiento de direcciones de puntero erróneas.
Entrada |
Tipo de datos |
Descripción |
---|---|---|
i_sResource |
STRING[GPL.Gc_uiMaxLengthOfResource] |
Especifica el recurso del host al que accede la petición. |
i_sHost |
STRING[GPL.Gc_uiMaxHostSize] |
Especifica la dirección del host; si es necesario, se especifica también el puerto. |
i_anyAdditionalHeader |
ANY_STRING |
Especifica otros encabezados que se añadirán a la petición HTTP. |
i_anyContent |
ANY |
Asigna el búfer que incluye el contenido que se enviará con la petición HTTP. |
i_udiContentLength |
UDINT |
Longitud del contenido en bytes. |
i_anyResponseBuffer |
ANY |
Búfer destinado a almacenar la respuesta del servidor. |
Salida |
Tipo de datos |
Descripción |
---|---|---|
q_xError |
BOOL |
Si esta salida se establece en TRUE, se ha detectado un error. Para obtener información detallada, consulte q_etResult y q_etResultMsg. |
q_etResult |
Proporciona información de diagnóstico y estado en forma de valor numérico. |
|
q_sResultMsg |
STRING[80] |
Proporciona información adicional de diagnóstico y estado en forma de mensaje de texto. |