Post - Metodo

Panoramica

Tipo:

Metodo

Disponibile a partire da:

V1.0.0.0

G-SE-0076332.1.gif-high.gif

 

 

Task

Il metodo Post inizia il metodo HTTP per inviare i dati alla risorsa specificata.

Descrizione funzionale

Utilizzando gli ingressi i_sHost (obbligatorio) e i_sResource viene creata l'intestazione predefinita della richiesta HTTP. Se occorre aggiungere ulteriori informazioni all'intestazione, passarle attraverso l'ingresso i_anyAdditionalHeader. I dati assegnati a questo ingresso non vengono verificati. All'ingresso i_anyResponseBuffer, occorre assegnare un buffer di dimensione sufficiente per memorizzare l'intera risposta ricevuta dal server.

Gli ingressi i_anyContent e i_udiContentLength specificano il contenuto da inviare.

Il valore di restituzione del metodo è di tipo BOOL e indica se l'esecuzione del metodo è riuscita (TRUE) o meno (FALSE). Valutare le uscite di diagnostica del metodo, nel caso in cui il valore di restituzione sia FALSE. Non è necessario azzerare un errore indicato da queste uscite. Utilizzare la proprietà State per ottenere lo stato di elaborazione.

Una chiamata del metodo Post è consentita solo nello stato Connected.

Esempio di implementazione

L'esempio seguente mostra come la richiesta HTTP sia simile dopo la chiamata del metodo Post.

Chiamata del metodo:

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);

Richiesta HTTP risultante:

POST /example HTTP/1.1
Host: se.com
Content-Length: 20
Content-Type: application/json
Connection: Keep-Alive

This is the content!

Transizione di stato del client

Fase

Descrizione

1

Stato iniziale: Connected

2

Chiamata di funzione

3

Stato: SendingRequest, in caso contrario viene rilevato un errore

4

Stato finale: ResponseAvailable, in caso contrario viene rilevato un errore

NOTA: In caso di modifiche online mentre il blocco funzione elabora una richiesta Post, l'esecuzione viene interrotta per impedire una possibile violazione di accesso causata dall'elaborazione di indirizzi errati del puntatore.

Interfaccia

Ingresso

Tipo di dati

Descrizione

i_sResource

STRING[GPL.Gc_uiMaxLengthOfResource]

Specifica la risorsa sull'host che deve essere raggiunto dalla richiesta.

i_sHost

STRING[GPL.Gc_uiMaxHostSize]

Specifica l'indirizzo dell'host; se richiesto insieme con la porta.

i_anyAdditionalHeader

ANY_STRING

Specifica ulteriori intestazioni da aggiungere alla richiesta HTTP.

i_anyContent

ANY

Assegna il buffer con il contenuto da inviare con la richiesta HTTP.

i_udiContentLength

UDINT

Lunghezza del contenuto in byte.

i_anyResponseBuffer

ANY

Buffer per memorizzare la risposta dal server.

Uscita

Tipo di dati

Descrizione

q_xError

BOOL

Se questa uscita è impostata su TRUE, è stato rilevato un errore. Per informazioni, consultare q_etResult e q_etResultMsg.

q_etResult

ET_Result

Fornisce informazioni su stato e diagnostica come valore numerico.

q_sResultMsg

STRING[80]

Fornisce ulteriori informazioni su stato e diagnostica come messaggio di testo.