TsgcHTTP2Clientメソッド › GetFuture

GetFuture メソッド

バックグラウンドスレッドで HTTP/2 GET を実行し、レスポンス本文で解決される future を返します。

構文

function GetFuture(const aURL: string): IsgcFuture<string>;

パラメータ

名前タイプ説明
aURLconst string取得するリソースの絶対 URL です。

戻り値

レスポンス本文で解決される IsgcFuture<string> です。Await を呼び出すとレスポンスが到着するまでブロックします。ThenProc で本文を継続処理の中で利用し、OnError で失敗を処理し、Cancel でリクエストを中止します。

解説

GetFuture は、同期メソッド Get の future スタイル版です。リクエストはバックグラウンドスレッドで実行され、メソッドは直ちに戻るため、呼び出し元のスレッドがブロックされることはありません。ConnectAsync やその他の Async メソッドとは異なり、イベントハンドラーは不要です。レスポンスは返された future を通じて配信されます。Cancel を呼び出すとクライアントが切断されるため、レスポンスを待機中のリクエストは完了まで実行されるのではなく中止されます。中止されたリクエストや失敗したリクエストは、OnError に配信される(または Await によって再送出される)例外で future を拒否します。Delphi 2010 以降(および C++Builder 2010 以降)が必要です。.NET エディションでは使用できません。

使用例

oClient.GetFuture('https://www.esegece.com')
  .ThenProc(procedure(const aBody: string)
    begin
      WriteLn(aBody);
    end)
  .OnError(procedure(E: Exception)
    begin
      WriteLn('Request failed: ' + E.Message);
    end);

メソッドに戻る