diff --git a/src/RestClient.php b/src/RestClient.php index 75a5e19..8cb50cf 100644 --- a/src/RestClient.php +++ b/src/RestClient.php @@ -45,18 +45,29 @@ class RestClient { */ private $cookieFilePath; + /** + * @var string|null The HTTP response code from the most recent request. + */ + private string $responseCode; + + /** + * @var bool Whether to throw exceptions on HTTP errors. + */ + private bool $throwExceptionsOnHttpError; + /** * RestClient constructor. * * @param bool $useCookies Whether to use cookies for maintaining session (default: false). */ - public function __construct($cookieFilePath = '/tmp/rest_client_cookies.txt') { + public function __construct($cookieFilePath = '/tmp/rest_client_cookies.txt', $throwExceptionsOnHttpError = true) { $this->headers = [ 'Content-Type: application/json', // Add any other headers you need ]; $this->useCookies = false; $this->cookieFilePath = $cookieFilePath; + $this->throwExceptionsOnHttpError = $throwExceptionsOnHttpError; } /** @@ -234,10 +245,12 @@ class RestClient { } $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + + $this->responseCode = $httpCode; curl_close($ch); - if ($httpCode >= 400) { + if ($httpCode >= 400 && $this->throwExceptionsOnHttpError) { throw new Exception('HTTP error: ' . $httpCode); } @@ -267,4 +280,13 @@ class RestClient { return $data; } + + /** + * Get the HTTP response code from the most recent request. + * + * @return string The HTTP response code. + */ + public function getResponseCode() { + return $this->responseCode; + } }