[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 namespace GuzzleHttp\Exception; 3 4 use GuzzleHttp\Message\RequestInterface; 5 use GuzzleHttp\Message\ResponseInterface; 6 use GuzzleHttp\Ring\Exception\ConnectException; 7 use GuzzleHttp\Exception\ConnectException as HttpConnectException; 8 use GuzzleHttp\Ring\Future\FutureInterface; 9 10 /** 11 * HTTP Request exception 12 */ 13 class RequestException extends TransferException 14 { 15 /** @var RequestInterface */ 16 private $request; 17 18 /** @var ResponseInterface */ 19 private $response; 20 21 public function __construct( 22 $message, 23 RequestInterface $request, 24 ResponseInterface $response = null, 25 \Exception $previous = null 26 ) { 27 // Set the code of the exception if the response is set and not future. 28 $code = $response && !($response instanceof FutureInterface) 29 ? $response->getStatusCode() 30 : 0; 31 parent::__construct($message, $code, $previous); 32 $this->request = $request; 33 $this->response = $response; 34 } 35 36 /** 37 * Wrap non-RequestExceptions with a RequestException 38 * 39 * @param RequestInterface $request 40 * @param \Exception $e 41 * 42 * @return RequestException 43 */ 44 public static function wrapException(RequestInterface $request, \Exception $e) 45 { 46 if ($e instanceof RequestException) { 47 return $e; 48 } elseif ($e instanceof ConnectException) { 49 return new HttpConnectException($e->getMessage(), $request, null, $e); 50 } else { 51 return new RequestException($e->getMessage(), $request, null, $e); 52 } 53 } 54 55 /** 56 * Factory method to create a new exception with a normalized error message 57 * 58 * @param RequestInterface $request Request 59 * @param ResponseInterface $response Response received 60 * @param \Exception $previous Previous exception 61 * 62 * @return self 63 */ 64 public static function create( 65 RequestInterface $request, 66 ResponseInterface $response = null, 67 \Exception $previous = null 68 ) { 69 if (!$response) { 70 return new self('Error completing request', $request, null, $previous); 71 } 72 73 $level = floor($response->getStatusCode() / 100); 74 if ($level == '4') { 75 $label = 'Client error response'; 76 $className = __NAMESPACE__ . '\\ClientException'; 77 } elseif ($level == '5') { 78 $label = 'Server error response'; 79 $className = __NAMESPACE__ . '\\ServerException'; 80 } else { 81 $label = 'Unsuccessful response'; 82 $className = __CLASS__; 83 } 84 85 $message = $label . ' [url] ' . $request->getUrl() 86 . ' [status code] ' . $response->getStatusCode() 87 . ' [reason phrase] ' . $response->getReasonPhrase(); 88 89 return new $className($message, $request, $response, $previous); 90 } 91 92 /** 93 * Get the request that caused the exception 94 * 95 * @return RequestInterface 96 */ 97 public function getRequest() 98 { 99 return $this->request; 100 } 101 102 /** 103 * Get the associated response 104 * 105 * @return ResponseInterface|null 106 */ 107 public function getResponse() 108 { 109 return $this->response; 110 } 111 112 /** 113 * Check if a response was received 114 * 115 * @return bool 116 */ 117 public function hasResponse() 118 { 119 return $this->response !== null; 120 } 121 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |