WordPress\AiClient\Providers\Http\Exception

RedirectException::fromRedirectResponsepublic staticWP 0.2.0

Creates a RedirectException from a redirect response.

This method extracts redirect information from the response headers and creates an exception with a descriptive message and status code.

Method of the class: RedirectException{}

No Hooks.

Returns

self.

Usage

$result = RedirectException::fromRedirectResponse( $response ): self;
$response(Response) (required)
The HTTP redirect response.

Changelog

Since 0.2.0 Introduced.

RedirectException::fromRedirectResponse() code WP 7.0.2

public static function fromRedirectResponse(Response $response): self
{
    $statusCode = $response->getStatusCode();
    $statusTexts = [300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 307 => 'Temporary Redirect', 308 => 'Permanent Redirect'];
    if (isset($statusTexts[$statusCode])) {
        $errorMessage = sprintf('%s (%d)', $statusTexts[$statusCode], $statusCode);
    } else {
        $errorMessage = sprintf('Redirect error (%d): Request needs to be retried at a different location', $statusCode);
    }
    // Try to extract the redirect location from headers
    $locationValues = $response->getHeader('Location');
    if ($locationValues !== null && !empty($locationValues)) {
        $location = $locationValues[0];
        $errorMessage .= ' - Location: ' . $location;
    }
    return new self($errorMessage, $statusCode);
}