是否可以在TIdHTTPServer onCommandGet事件中使用TIdHTTP(客户端)重定向请求并返回响应?

时间:2014-04-25 12:24:20

标签: delphi httpclient indy httpserver

我想知道我是否可以拥有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;

1 个答案:

答案 0 :(得分:2)

没有本机解决方案可以满足您的要求。您必须手动实施它。根据需要将ARequestInfo属性中的相关值复制到TIdHTTP.Request,然后根据需要调用TIdHTTP.Get()TIdHTTP.Post()等,然后从TIdHTTP.Response复制相关值根据需要进入AResponseInfo