add ability to get response code

This commit is contained in:
2024-07-25 14:55:39 -05:00
parent e56c2915ba
commit ecda259bff

View File

@@ -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;
}
}