我想知道我是否可以拥有onCommandGet事件,我可以将客户端请求重定向到另一个主机/端口,获取TIdHTTP(客户端)所需的信息并通过AResponseInfo将其发送回客户端?
它看起来像这样:
procedure HTTPServerCommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
client : TIdHTTP;
begin
client := TIdHTTP.Create();
try
client.Request := ARequestInfo; // or somehow put the ARequestInfo in the client
... // in here I don't know how to make the GET, POST, HEAD or other
... // (if possible) request to 'some_host:some_port'
AResponseInfo := client.Response; // or somehow put the client Response in AResponseInfo
finally
FreeAndNil(client);
end;
end;
答案 0 :(得分:2)
没有本机解决方案可以满足您的要求。您必须手动实施它。根据需要将ARequestInfo
属性中的相关值复制到TIdHTTP.Request
,然后根据需要调用TIdHTTP.Get()
,TIdHTTP.Post()
等,然后从TIdHTTP.Response
复制相关值根据需要进入AResponseInfo
。