diff options
Diffstat (limited to 'includes/vendor/rmccue/requests/library/Requests/Exception/HTTP.php')
| -rw-r--r-- | includes/vendor/rmccue/requests/library/Requests/Exception/HTTP.php | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/includes/vendor/rmccue/requests/library/Requests/Exception/HTTP.php b/includes/vendor/rmccue/requests/library/Requests/Exception/HTTP.php new file mode 100644 index 0000000..9ac6a87 --- /dev/null +++ b/includes/vendor/rmccue/requests/library/Requests/Exception/HTTP.php @@ -0,0 +1,71 @@ +<?php +/** + * Exception based on HTTP response + * + * @package Requests + */ + +/** + * Exception based on HTTP response + * + * @package Requests + */ +class Requests_Exception_HTTP extends Requests_Exception { + /** + * HTTP status code + * + * @var integer + */ + protected $code = 0; + + /** + * Reason phrase + * + * @var string + */ + protected $reason = 'Unknown'; + + /** + * Create a new exception + * + * There is no mechanism to pass in the status code, as this is set by the + * subclass used. Reason phrases can vary, however. + * + * @param string|null $reason Reason phrase + * @param mixed $data Associated data + */ + public function __construct($reason = null, $data = null) { + if ($reason !== null) { + $this->reason = $reason; + } + + $message = sprintf('%d %s', $this->code, $this->reason); + parent::__construct($message, 'httpresponse', $data, $this->code); + } + + /** + * Get the status message + */ + public function getReason() { + return $this->reason; + } + + /** + * Get the correct exception class for a given error code + * + * @param int|bool $code HTTP status code, or false if unavailable + * @return string Exception class name to use + */ + public static function get_class($code) { + if (!$code) { + return 'Requests_Exception_HTTP_Unknown'; + } + + $class = sprintf('Requests_Exception_HTTP_%d', $code); + if (class_exists($class)) { + return $class; + } + + return 'Requests_Exception_HTTP_Unknown'; + } +}
\ No newline at end of file |