TsgcWebSocketHTTPServer › 이벤트 › OnAfterForwardHTTP
애플리케이션이 결과 또는 업스트림 서버가 반환한 오류를 검사할 수 있도록 HTTP 요청이 전달된 후 발생합니다.
__property TsgcWSOnAfterForwardHTTP OnAfterForwardHTTP;
// typedef void __fastcall (__closure *TsgcWSOnAfterForwardHTTP)(TsgcWSConnection * Connection, TIdHTTPRequestInfo * ARequestInfo, TIdHTTPResponseInfo * AResponseInfo, Exception E);
—
OnAfterForwardHTTP는 OnBeforeForwardHTTP가 전달을 활성화하고 상위 HTTP 요청이 완료되면 발생합니다. ARequestInfo는 원본 클라이언트 요청이고, AResponseInfo는 상위 서버에서 채워진 대로 다시 기록되려는 응답(ResponseNo, ContentType, ContentText...)이며, E는 성공 시 nil이거나 대상 서버에 접속하는 동안 발생한 예외입니다. 이 이벤트를 사용하여 결과를 기록하거나, 응답 헤더/본문이 클라이언트로 반환되기 전에 재작성하거나, 상위 호출이 실패했을 때 사용자 정의 오류 페이지로 응답을 재정의하십시오.
void OnAfterForwardHTTP(TsgcWSConnection *Connection, TIdHTTPRequestInfo *ARequestInfo,
TIdHTTPResponseInfo *AResponseInfo, Exception *E)
{
if (E != NULL)
{
AResponseInfo->ResponseNo = 502;
AResponseInfo->ContentText = "Upstream error: " + E->Message;
}
else
Log("forwarded " + ARequestInfo->Document + " -> " + IntToStr(AResponseInfo->ResponseNo));
}