TsgcWebSocketHTTPServer事件 › OnAfterForwardHTTP

OnAfterForwardHTTP 事件

在 HTTP 请求转发后触发,以便应用程序可以检查结果或上游服务器返回的错误。

语法

property OnAfterForwardHTTP: TsgcWSOnAfterForwardHTTP;
// TsgcWSOnAfterForwardHTTP = procedure(Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; E: Exception) of object

默认值

备注

OnAfterForwardHTTP 在 OnBeforeForwardHTTP 启用转发且上游 HTTP 请求完成后触发。ARequestInfo 是原始客户端请求,AResponseInfo 是即将写回的响应(由上游服务器填充的 ResponseNo、ContentType、ContentText 等),E 在成功时为 nil,在联系目标服务器时引发异常则为该异常。使用此事件记录结果、在返回客户端之前重写响应头/体,或在上游调用失败时用自定义错误页面覆盖响应。

示例


procedure OnAfterForwardHTTP(Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo;
  AResponseInfo: TIdHTTPResponseInfo; E: Exception);
begin
  if Assigned(E) then
  begin
    AResponseInfo.ResponseNo := 502;
    AResponseInfo.ContentText := 'Upstream error: ' + E.Message;
  end
  else
    Log(Format('forwarded %s -> %d', [ARequestInfo.Document, AResponseInfo.ResponseNo]));
end;

返回事件