API:System.Net.HttpClient.THTTPClient.DoExecuteAsync

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

function DoExecuteAsync(const AsyncCallback: TAsyncCallback; const AsyncCallbackEvent: TAsyncCallbackEvent;
const ARequestMethod: string; const AURI: TURI; const ASourceStream, AContentStream: TStream;
const AHeaders: TNetHeaders; AOwnsSourceStream: Boolean): IAsyncResult; override;

C++

virtual System::Types::_di_IAsyncResult __fastcall DoExecuteAsync(const System::Classes::_di_TAsyncCallback AsyncCallback, const System::Classes::TAsyncProcedureEvent AsyncCallbackEvent, const System::UnicodeString ARequestMethod, const System::Net::Urlclient::TURI &AURI, System::Classes::TStream* const ASourceStream, System::Classes::TStream* const AContentStream, const System::DynamicArray<System::Net::Urlclient::TNameValuePair> AHeaders, bool AOwnsSourceStream);

プロパティ

種類 可視性 ソース ユニット
function protected
System.Net.HttpClient.pas
System.Net.HTTPClient.hpp
System.Net.HttpClient THTTPClient

説明

非同期 URL リクエストを開始します。

System.Net.HttpClient.THTTPClient.DoExecuteAsync は System.Net.URLClient.TURLClient.DoExecuteAsync を継承しています。以下の内容はすべて System.Net.URLClient.TURLClient.DoExecuteAsync を参照しています。

メモ: TURLClient のサブクラスは、DoExecuteAsync の独自の実装を提供する必要があり、それは以下の説明のように動作します。 TURLClient.DoExecuteAsync を呼び出すと、ENetURIClientException 例外を発生させます。

非同期 URL リクエストを開始します。

DoExecuteAsync を呼び出す際、URL リクエストを実行するのに必要なデータを提供しなければなりません:

  • AsyncCallback は、レスポンスが受け取られたとき、またはリクエストが失敗した際に呼び出されるコールバック プロシージャです。
  • AsyncCallbackEventイベント ハンドラで、レスポンスが受けたられたとき呼び出され、AsyncCallback が nil の際にはリクエストは失敗します。
  • ARequestMethod は、使用するリクエスト メソッドを定義する文字列です。 利用可能nリクエスト メソッドは、プロトコルによって変わります。
  • AURIURI で、要求するリソースの場所を判別します。
  • ASourceStream は、リクエストで提供するデータのストリームです。
  • AContentStream は、レスポンスに含まれるデータを保持するストリームです。
  • AHeaders は、リクエストに含まれるヘッダーのリストです。
  • AOwnsSourceStream は、ASourceStream が、リクエストが登録された際に解放されるべきか(True)、否か(False)を決定します。

DoExecuteAsync は、非同期にレスポンス データの設定を開始する、非同期結果オブジェクトを返します。

すべてのレスポンス データが非同期結果オブジェクトに受け取られると、コールバック関数またはイベント ハンドラが呼び出され、対応する非同期結果オブジェクトがパラメータとして提供されます。

オペレーションが正常終了したかを確認するために、EndAsyncURL をターゲットの非同期結果オブジェクトをパラメータにして呼び出します。リクエストの間に問題があった場合(タイムアウトなど)、EndAsyncURL は例外を発生させます。

通常は、EndAsyncURL を、レスポンス データがすでに受信されていることがわかっている、コールバック関数またはイベント ハンドラの中から呼び出します。 しかし、実際には EndAsyncURL をどのタイミングでも呼び出すことができ、プログラムの実行をレスポンス データが受信されるまで止め、効果的に、非同期リクエストを同期リクエストに変えることができます。

BeginExecuteDoExecuteAsync を呼び出します。

関連項目