TsgcWebSocketHTTPServer › Ereignisse › OnAfterForwardHTTP
Wird ausgelöst, nachdem eine HTTP-Anfrage weitergeleitet wurde, sodass die Anwendung das Ergebnis oder einen vom Upstream-Server zurückgegebenen Fehler prüfen kann.
property OnAfterForwardHTTP: TsgcWSOnAfterForwardHTTP;
// TsgcWSOnAfterForwardHTTP = procedure(Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; E: Exception) of object
—
OnAfterForwardHTTP wird ausgelöst, sobald OnBeforeForwardHTTP die Weiterleitung aktiviert hat und die Upstream-HTTP-Anfrage abgeschlossen wurde. ARequestInfo ist die ursprüngliche Client-Anfrage, AResponseInfo ist die Antwort, die zurückgeschrieben werden soll (ResponseNo, ContentType, ContentText...), wie sie vom Upstream-Server befüllt wurde, und E ist entweder nil bei Erfolg oder die Ausnahme, die beim Kontaktieren des Zielservers ausgelöst wurde. Verwenden Sie das Ereignis, um das Ergebnis zu protokollieren, Antwort-Header/-Body neu zu schreiben, bevor sie an den Client zurückgegeben werden, oder die Antwort mit einer benutzerdefinierten Fehlerseite zu überschreiben, wenn der Upstream-Aufruf fehlgeschlagen ist.
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;