THTTPClient
支持异步操作。例如:
var
H: THTTPClient;
A: IAsyncResult;
r: IHTTPResponse;
begin
H := THTTPClient.Create;
A := H.BeginGet('http://localhost/get', nil);
// P1
r := THTTPClient.EndAsyncHTTP(A);
ShowMessage(r.StatusCode.ToString);
// P2
end;
上述代码中未释放H
实例。如果我在P1处释放H
,则会收到HTTP操作已取消的错误。如果我在P2处免费H
,它可以正常工作。
如果我想异步执行HTTP操作,但稍后以其他方法获取响应,该怎么办:
procedure ShowResponse(A: IAsyncResult);
var
r: IHTTPResponse;
begin
r := THTTPClient.EndAsyncHTTP(A);
ShowMessage(r.StatusCode.ToString);
end;
我应该如何释放H
实例?