Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. RequestException.php

function RequestException::create

Factory method to create a new exception with a normalized error message

Parameters

RequestInterface $request Request sent:

ResponseInterface $response Response received:

\Throwable|null $previous Previous exception:

array $handlerContext Optional handler context:

BodySummarizerInterface|null $bodySummarizer Optional body summarizer:

1 call to RequestException::create()
Middleware::httpErrors in vendor/guzzlehttp/guzzle/src/Middleware.php
Middleware that throws exceptions for 4xx or 5xx responses when the "http_errors" request option is set to true.

File

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

Class

RequestException
HTTP Request exception

Namespace

GuzzleHttp\Exception

Code

public static function create(RequestInterface $request, ?ResponseInterface $response = null, ?\Throwable $previous = null, array $handlerContext = [], ?BodySummarizerInterface $bodySummarizer = null) : self {
    if (!$response) {
        return new self('Error completing request', $request, null, $previous, $handlerContext);
    }
    $level = (int) \floor($response->getStatusCode() / 100);
    if ($level === 4) {
        $label = 'Client error';
        $className = ClientException::class;
    }
    elseif ($level === 5) {
        $label = 'Server error';
        $className = ServerException::class;
    }
    else {
        $label = 'Unsuccessful request';
        $className = __CLASS__;
    }
    $uri = \GuzzleHttp\Psr7\Utils::redactUserInfo($request->getUri());
    // Client Error: `GET /` resulted in a `404 Not Found` response:
    // <html> ... (truncated)
    $message = \sprintf('%s: `%s %s` resulted in a `%s %s` response', $label, $request->getMethod(), $uri->__toString(), $response->getStatusCode(), $response->getReasonPhrase());
    $summary = ($bodySummarizer ?? new BodySummarizer())->summarize($response);
    if ($summary !== null) {
        $message .= ":\n{$summary}\n";
    }
    return new $className($message, $request, $response, $previous, $handlerContext);
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal