Метод THTTPClient. Запускает асинхронный HTTP-запрос.
function BeginExecute(const ARequest:; const AContentStream: TStream = nil; const AHeaders: TNetHeaders = nil): IAsyncResult; overload; function BeginExecute(const AsyncCallback: TAsyncCallback; const ARequest: IHTTPRequest; const AContentStream: TStream = nil; const AHeaders: TNetHeaders = nil): IAsyncResult; overload; function BeginExecute(const AsyncCallbackEvent: TAsyncCallbackEvent; const ARequest: IHTTPRequest; const AContentStream: TStream = nil; const AHeaders: TNetHeaders = nil): IAsyncResult; overload;
Параметры:
| ARequest | Обязательный | IHTTPRequest | HTTP-запрос, который необходимо выполнить |
| AContentStream | Необязательный | TStream | Поток, содержимое которого необходимо передать на сервер |
| AHeaders | Необязательный | TNetHeaders | Дополнительные заголовки, которые необходимо включить в запрос |
| AsyncCallback | Необязательный | TAsyncCallback | Процедура обратного вызова, которая вызывается при получении ответа или сбое запроса. |
| AsyncCallbackEvent | Необязательный | TAsyncCallbackEvent | Обработчик события, который вызывается при получении ответа или сбое запроса |
BeginExecute возвращает асинхронный объект результата, который начинает заполняться данными ответа асинхронно. Вы можете обработать событие OnReceiveData, чтобы отслеживать ход загрузки данных ответа.
Когда все данные ответа получены, вызывается функция обратного вызова или обработчик события, и в качестве параметра предоставляется соответствующий объект асинхронного результата.
Вызовите EndAsyncHTTP с целевым асинхронным объектом результата в качестве параметра, чтобы убедиться, что операция прошла успешно.
EndAsyncHTTP вызывает исключение, если во время запроса была какая-либо проблема, например такая как тайм-аут.
Обычно вы вызываете EndAsyncHTTP внутри функции обратного вызова или обработчика события, где вы знаете, что данные ответа уже получены. Однако вы можете вызвать EndAsyncHTTP в любой момент, что останавливает выполнение программы до получения данных ответа, фактически превращая асинхронный запрос в синхронный.
Смотрите также:
- Пример Delphi: Как в Delphi скачать файл с использованием HTTP Client API?
- Обзорная статья: HTTP Client API в Delphi
- Пример Delphi: Как в Delphi скачать файл в асинхронном режиме с использованием HTTP Client API?
