TsgcHTTP2Client › Métodos › PostFuture
Ejecuta un POST HTTP/2 en un hilo en segundo plano y devuelve un future que se resuelve con el cuerpo de la respuesta.
function PostFuture(const aURL: string; aData: TStream): IsgcFuture<string>;
| Nombre | Tipo | Descripción |
|---|---|---|
aURL | const string | URL absoluta que recibirá la solicitud POST. |
aData | TStream | Stream que proporciona el cuerpo de la solicitud. Mantenga vivo el stream hasta que el future se complete; se lee desde el hilo en segundo plano mientras se envía la solicitud. |
Un IsgcFuture<string> que se resuelve con el cuerpo de la respuesta. Llame a Await para bloquear hasta que llegue la respuesta, a ThenProc para consumir el cuerpo en una continuación, a OnError para gestionar los fallos y a Cancel para abortar la solicitud.
PostFuture es la contrapartida de estilo future del método síncrono Post: la solicitud se ejecuta en un hilo en segundo plano y el método retorna de inmediato, por lo que el hilo llamante nunca se bloquea. A diferencia de PostAsync, no se requiere ningún controlador de eventos: la respuesta se entrega a través del future devuelto. Llamar a Cancel desconecta el cliente, por lo que una solicitud que aún espera su respuesta se aborta en lugar de ejecutarse hasta el final; una solicitud abortada o fallida rechaza el future con una excepción entregada a OnError (o relanzada por Await). Requiere Delphi 2010 o posterior (y C++Builder 2010 o posterior); no está disponible en la edición .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;