TsgcHTTP2Client › Metodi › PostFuture
Esegue una POST HTTP/2 su un thread in background e restituisce un future che si risolve nel corpo della risposta.
function PostFuture(const aURL: string; aData: TStream): IsgcFuture<string>;
| Nome | Tipo | Descrizione |
|---|---|---|
aURL | const string | URL assoluto che riceverà la richiesta POST. |
aData | TStream | Stream che fornisce il corpo della richiesta. Mantenere lo stream attivo finché il future non viene completato; viene letto dal thread in background durante l'invio della richiesta. |
Un IsgcFuture<string> che si risolve nel corpo della risposta. Chiamare Await per bloccare fino all'arrivo della risposta, ThenProc per consumare il corpo in una continuazione, OnError per gestire gli errori e Cancel per annullare la richiesta.
PostFuture è la controparte in stile future del metodo sincrono Post: la richiesta viene eseguita su un thread in background e il metodo ritorna immediatamente, quindi il thread chiamante non viene mai bloccato. A differenza di PostAsync, non è richiesto alcun gestore di eventi: la risposta viene consegnata tramite il future restituito. La chiamata a Cancel disconnette il client, quindi una richiesta ancora in attesa della risposta viene interrotta invece di essere portata a termine; una richiesta interrotta o non riuscita rifiuta il future con un'eccezione consegnata a OnError (o rilanciata da Await). Richiede Delphi 2010 o successivo (e C++Builder 2010 o successivo); non è disponibile nell'edizione .NET.
oBody := TStringStream.Create('{"name":"John"}');
oClient.Request.ContentType := 'application/json';
oFuture := oClient.PostFuture('https://api.example.com/users', oBody);
try
WriteLn(oFuture.Await);
finally
oBody.Free;
end;