TsgcWebSocketHTTPServer › Zdarzenia › OnAfterForwardHTTP
Wywoływane po przesłaniu żądania HTTP, aby aplikacja mogła sprawdzić wynik lub błąd zwrócony przez serwer nadrzędny.
property OnAfterForwardHTTP: TsgcWSOnAfterForwardHTTP;
// TsgcWSOnAfterForwardHTTP = procedure(Connection: TsgcWSConnection; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo; E: Exception) of object
—
Zdarzenie OnAfterForwardHTTP jest wywoływane po tym, jak OnBeforeForwardHTTP włączył przekazywanie i żądanie HTTP do serwera nadrzędnego zostało zakończone. ARequestInfo to oryginalne żądanie klienta, AResponseInfo to odpowiedź gotowa do zapisania (ResponseNo, ContentType, ContentText...) wypełniona przez serwer nadrzędny, a E to nil w przypadku sukcesu lub wyjątek zgłoszony podczas kontaktowania się z serwerem docelowym. Zdarzenia można użyć do rejestrowania wyniku, przepisywania nagłówków/treści odpowiedzi przed jej zwróceniem do klienta lub zastąpienia odpowiedzi niestandardową stroną błędu, gdy wywołanie serwera nadrzędnego nie powiodło się.
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;