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;

イベントに戻る