You are here

class RequestException in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/guzzlehttp/guzzle/src/Exception/RequestException.php \GuzzleHttp\Exception\RequestException

HTTP Request exception

Hierarchy

Expanded class hierarchy of RequestException

11 files declare their use of RequestException
Client.php in vendor/fabpot/goutte/Goutte/Client.php
ClientTest.php in vendor/fabpot/goutte/Goutte/Tests/ClientTest.php
CurlFactory.php in vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php
DefaultFetcher.php in core/modules/aggregator/src/Plugin/aggregator/fetcher/DefaultFetcher.php
Contains \Drupal\aggregator\Plugin\aggregator\fetcher\DefaultFetcher.
install.core.inc in core/includes/install.core.inc
API functions for installing Drupal.

... See full list

File

vendor/guzzlehttp/guzzle/src/Exception/RequestException.php, line 11

Namespace

GuzzleHttp\Exception
View source
class RequestException extends TransferException {

  /** @var RequestInterface */
  private $request;

  /** @var ResponseInterface */
  private $response;

  /** @var array */
  private $handlerContext;
  public function __construct($message, RequestInterface $request, ResponseInterface $response = null, \Exception $previous = null, array $handlerContext = []) {

    // Set the code of the exception if the response is set and not future.
    $code = $response && !$response instanceof PromiseInterface ? $response
      ->getStatusCode() : 0;
    parent::__construct($message, $code, $previous);
    $this->request = $request;
    $this->response = $response;
    $this->handlerContext = $handlerContext;
  }

  /**
   * Wrap non-RequestExceptions with a RequestException
   *
   * @param RequestInterface $request
   * @param \Exception       $e
   *
   * @return RequestException
   */
  public static function wrapException(RequestInterface $request, \Exception $e) {
    return $e instanceof RequestException ? $e : new RequestException($e
      ->getMessage(), $request, null, $e);
  }

  /**
   * Factory method to create a new exception with a normalized error message
   *
   * @param RequestInterface  $request  Request
   * @param ResponseInterface $response Response received
   * @param \Exception        $previous Previous exception
   * @param array             $ctx      Optional handler context.
   *
   * @return self
   */
  public static function create(RequestInterface $request, ResponseInterface $response = null, \Exception $previous = null, array $ctx = []) {
    if (!$response) {
      return new self('Error completing request', $request, null, $previous, $ctx);
    }
    $level = floor($response
      ->getStatusCode() / 100);
    if ($level == '4') {
      $label = 'Client error response';
      $className = __NAMESPACE__ . '\\ClientException';
    }
    elseif ($level == '5') {
      $label = 'Server error response';
      $className = __NAMESPACE__ . '\\ServerException';
    }
    else {
      $label = 'Unsuccessful response';
      $className = __CLASS__;
    }
    $message = $label . ' [url] ' . $request
      ->getUri() . ' [http method] ' . $request
      ->getMethod() . ' [status code] ' . $response
      ->getStatusCode() . ' [reason phrase] ' . $response
      ->getReasonPhrase();
    return new $className($message, $request, $response, $previous, $ctx);
  }

  /**
   * Get the request that caused the exception
   *
   * @return RequestInterface
   */
  public function getRequest() {
    return $this->request;
  }

  /**
   * Get the associated response
   *
   * @return ResponseInterface|null
   */
  public function getResponse() {
    return $this->response;
  }

  /**
   * Check if a response was received
   *
   * @return bool
   */
  public function hasResponse() {
    return $this->response !== null;
  }

  /**
   * Get contextual information about the error from the underlying handler.
   *
   * The contents of this array will vary depending on which handler you are
   * using. It may also be just an empty array. Relying on this data will
   * couple you to a specific handler, but can give more debug information
   * when needed.
   *
   * @return array
   */
  public function getHandlerContext() {
    return $this->handlerContext;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
RequestException::$handlerContext private property @var array
RequestException::$request private property @var RequestInterface
RequestException::$response private property @var ResponseInterface
RequestException::create public static function Factory method to create a new exception with a normalized error message
RequestException::getHandlerContext public function Get contextual information about the error from the underlying handler.
RequestException::getRequest public function Get the request that caused the exception
RequestException::getResponse public function Get the associated response 1
RequestException::hasResponse public function Check if a response was received 1
RequestException::wrapException public static function Wrap non-RequestExceptions with a RequestException
RequestException::__construct public function 1