Вход Регистрация
Файл: includes/library/aws/GuzzleHttp/Exception/RequestException.php
Строк: 166
<?php
namespace GuzzleHttpException;

use 
PsrHttpMessageRequestInterface;
use 
PsrHttpMessageResponseInterface;
use 
GuzzleHttpPromisePromiseInterface;

/**
 * HTTP Request exception
 */
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 $requestException $e)
    {
        return 
$e instanceof RequestException
            
$e
            
: new RequestException($e->getMessage(), $requestnull$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()
            . 
' [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;
    }
}
Онлайн: 0
Реклама