From aa182cb14737fce742689f269210acfbc51e2b8d Mon Sep 17 00:00:00 2001 From: Yuri Serebrennikov Date: Tue, 13 May 2025 02:04:51 +0300 Subject: [PATCH] The EHTTPClient class now implements an overloaded constructor that accepts both an error message and an associated HTTP status code, enabling retrieval of the HTTP error code when an exception occurs. --- packages/fcl-web/src/base/fphttpclient.pp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/fcl-web/src/base/fphttpclient.pp b/packages/fcl-web/src/base/fphttpclient.pp index c372c03d46..b1579043a0 100644 --- a/packages/fcl-web/src/base/fphttpclient.pp +++ b/packages/fcl-web/src/base/fphttpclient.pp @@ -424,7 +424,11 @@ Type end; - EHTTPClient = Class(EHTTP); + EHTTPClient = Class(EHTTP) + public + constructor Create(const AStatusText: String; AStatusCode: Integer); overload; + end; + // client socket exceptions EHTTPClientSocket = class(EHTTPClient); // reading from socket @@ -1351,7 +1355,7 @@ begin if not Result then Exit; if not CheckResponseCode(FResponseStatusCode,AllowedResponseCodes) then - Raise EHTTPClient.CreateFmt(SErrUnexpectedResponse,[ResponseStatusCode]); + Raise EHTTPClient.Create(SErrUnexpectedResponse, ResponseStatusCode); if HeadersOnly Or (AllowRedirect and IsRedirect(FResponseStatusCode)) then exit; if CompareText(CheckTransferEncoding,'chunked')=0 then @@ -2503,5 +2507,14 @@ begin end; end; +{ EHTTPClient } + +constructor EHTTPClient.Create(const AStatusText: String; AStatusCode: Integer); +begin + inherited CreateFmt(AStatusText, [AStatusCode]); + StatusText := AStatusText; + StatusCode := AStatusCode; +end; + end.