TsgcWebSocketHTTPServer › Événements › OnAfterForwardHTTP
Se déclenche après qu'une requête HTTP a été transférée afin que l'application puisse inspecter le résultat ou une erreur renvoyée par le serveur en amont.
property OnAfterForwardHTTP: TsgcWSOnAfterForwardHTTP;
// TsgcWSOnAfterForwardHTTP = procedure(Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; E: Exception) of object
—
OnAfterForwardHTTP est déclenché une fois que OnBeforeForwardHTTP a activé le transfert et que la requête HTTP en amont est terminée. ARequestInfo est la requête originale du client, AResponseInfo est la réponse sur le point d'être écrite en retour (ResponseNo, ContentType, ContentText...) telle que remplie depuis le serveur en amont, et E est soit nil en cas de succès, soit l'exception levée lors du contact avec le serveur cible. Utilisez l'événement pour journaliser le résultat, réécrire les en-têtes/corps de réponse avant leur retour au client, ou remplacer la réponse par une page d'erreur personnalisée en cas d'échec de l'appel en amont.
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;