API:System.Net.HttpClient.THTTPClient.DoExecuteAsync
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);
Propriétés
| Type | Visibilité | Source | Unité | Parent |
|---|---|---|---|---|
| function | protected | System.Net.HttpClient.pas System.Net.HTTPClient.hpp |
System.Net.HttpClient | THTTPClient |
Description
Démarre une requête URL asynchrone.
System.Net.HttpClient.THTTPClient.DoExecuteAsync hérite de System.Net.URLClient.TURLClient.DoExecuteAsync. Tout le contenu en-dessous de cette ligne se réfère à System.Net.URLClient.TURLClient.DoExecuteAsync.
- Remarque : Les sous-classes de TURLClient doivent fournir leur propre implémentation de DoExecuteAsync, qui doit fonctionner de la manière décrite ci-dessous. Lorsque vous appelez TURLClient.DoExecuteAsync, cela déclenche une exception ENetURIClientException.
Démarre une requête URL asynchrone.
Lorsque vous appelez TURLClient.DoExecuteAsync, vous devez fournir les données nécessaires à l'exécution de votre requête URL :
AsyncCallbackest une procédure de rappel à appeler lorsqu'une réponse est reçue ou que la requête échoue.AsyncCallbackEventest un gestionnaire d'événement à appeler lorsqu'une réponse est reçue ou que la requête échoue, siAsyncCallbackvaut nil.ARequestMethodest une chaîne qui définit la méthode de requête à utiliser. Les méthodes de requête possibles dépendent du protocole.AURIest un URI qui identifie l'emplacement de la ressource que vous demandez.ASourceStreamest un flux de données à fournir dans la requête.AContentStreamest un flux permettant de contenir les données incluses dans la réponse.AHeadersest une liste d'en-têtes à inclure dans la requête.AOwnsSourceStreamdétermine siASourceStreamdoit être libéré lors de la soumission de la requête (True) ou non (False).
DoExecuteAsync renvoie un objet de résultat asynchrone qui se remplit avec les données de la réponse de façon asynchrone.
Quand toutes les données de la réponse sont reçues dans l'objet de réponse, la fonction de rappel ou le gestionnaire d'événement sont appelés et fournissent l'objet de réponse correspondant comme paramètre.
Appelez EndAsyncURL avec l'objet de résultat asynchrone cible en tant que paramètre pour garantir que l'opération a réussi ; EndAsyncURL déclenche une exception en cas de problème durant la requête, tel qu'un délai d'expiration.
D'ordinaire, vous appelez EndAsyncURL à l'intérieur de la fonction de rappel ou du gestionnaire d'événement, là où l'on sait que les données de la réponse ont déjà été reçues. Cependant, vous pouvez appeler EndAsyncURL à n'importe quel moment, ce qui arrête l'exécution du programme jusqu'à réception des données de la réponse, transformant en réalité la requête asynchrone en requête synchrone.
BeginExecute appelle DoExecuteAsync.