TsgcWebSocketHTTPServer › イベント › 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;