*/ class HttpException extends ConnectionException { /** * Error code / message * * @var string Error code / message */ protected $_error = 0; /** * Construct Exception * * @param string $error Error * @param \Elastica\Request $request * @param \Elastica\Response $response */ public function __construct($error, Request $request = null, Response $response = null) { $this->_error = $error; $message = $this->getErrorMessage($this->getError()); parent::__construct($message, $request, $response); } /** * Returns the error message corresponding to the error code * cUrl error code reference can be found here {@link http://curl.haxx.se/libcurl/c/libcurl-errors.html} * * @param string $error Error code * @return string Error message */ public function getErrorMessage($error) { switch ($error) { case CURLE_UNSUPPORTED_PROTOCOL: $error = "Unsupported protocol"; break; case CURLE_FAILED_INIT: $error = "Internal cUrl error?"; break; case CURLE_URL_MALFORMAT: $error = "Malformed URL"; break; case CURLE_COULDNT_RESOLVE_PROXY: $error = "Couldn't resolve proxy"; break; case CURLE_COULDNT_RESOLVE_HOST: $error = "Couldn't resolve host"; break; case CURLE_COULDNT_CONNECT: $error = "Couldn't connect to host, Elasticsearch down?"; break; case 28: $error = "Operation timed out"; break; default: $error = "Unknown error:" . $error; break; } return $error; } /** * Return Error code / message * * @return string Error code / message */ public function getError() { return $this->_error; } }