Open Journal Systems  3.3.0
vendor/guzzlehttp/guzzle/src/Exception/RequestException.php
1 <?php
2 namespace GuzzleHttp\Exception;
3 
8 
13 {
15  private $request;
16 
18  private $response;
19 
21  private $handlerContext;
22 
23  public function __construct(
24  $message,
25  RequestInterface $request,
26  ResponseInterface $response = null,
27  \Exception $previous = null,
28  array $handlerContext = []
29  ) {
30  // Set the code of the exception if the response is set and not future.
31  $code = $response && !($response instanceof PromiseInterface)
32  ? $response->getStatusCode()
33  : 0;
34  parent::__construct($message, $code, $previous);
35  $this->request = $request;
36  $this->response = $response;
37  $this->handlerContext = $handlerContext;
38  }
39 
48  public static function wrapException(RequestInterface $request, \Exception $e)
49  {
50  return $e instanceof RequestException
51  ? $e
52  : new RequestException($e->getMessage(), $request, null, $e);
53  }
54 
65  public static function create(
66  RequestInterface $request,
67  ResponseInterface $response = null,
68  \Exception $previous = null,
69  array $ctx = []
70  ) {
71  if (!$response) {
72  return new self(
73  'Error completing request',
74  $request,
75  null,
76  $previous,
77  $ctx
78  );
79  }
80 
81  $level = (int) floor($response->getStatusCode() / 100);
82  if ($level === 4) {
83  $label = 'Client error';
84  $className = ClientException::class;
85  } elseif ($level === 5) {
86  $label = 'Server error';
87  $className = ServerException::class;
88  } else {
89  $label = 'Unsuccessful request';
90  $className = __CLASS__;
91  }
92 
93  $uri = $request->getUri();
94  $uri = static::obfuscateUri($uri);
95 
96  // Client Error: `GET /` resulted in a `404 Not Found` response:
97  // <html> ... (truncated)
98  $message = sprintf(
99  '%s: `%s %s` resulted in a `%s %s` response',
100  $label,
101  $request->getMethod(),
102  $uri,
103  $response->getStatusCode(),
104  $response->getReasonPhrase()
105  );
106 
107  $summary = static::getResponseBodySummary($response);
108 
109  if ($summary !== null) {
110  $message .= ":\n{$summary}\n";
111  }
112 
113  return new $className($message, $request, $response, $previous, $ctx);
114  }
115 
125  public static function getResponseBodySummary(ResponseInterface $response)
126  {
127  return \GuzzleHttp\Psr7\get_message_body_summary($response);
128  }
129 
137  private static function obfuscateUri(UriInterface $uri)
138  {
139  $userInfo = $uri->getUserInfo();
140 
141  if (false !== ($pos = strpos($userInfo, ':'))) {
142  return $uri->withUserInfo(substr($userInfo, 0, $pos), '***');
143  }
144 
145  return $uri;
146  }
147 
153  public function getRequest()
154  {
155  return $this->request;
156  }
157 
163  public function getResponse()
164  {
165  return $this->response;
166  }
167 
173  public function hasResponse()
174  {
175  return $this->response !== null;
176  }
177 
188  public function getHandlerContext()
189  {
190  return $this->handlerContext;
191  }
192 }
GuzzleHttp\Exception\RequestException
Definition: vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:12
GuzzleHttp\Exception\RequestException\getResponse
getResponse()
Definition: vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:172
GuzzleHttp\Promise\PromiseInterface
Definition: PromiseInterface.php:13
Psr\Http\Message\RequestInterface
Definition: vendor/psr/http-message/src/RequestInterface.php:24
GuzzleHttp\Exception\RequestException\getRequest
getRequest()
Definition: vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:162
GuzzleHttp\Exception\RequestException\getResponseBodySummary
static getResponseBodySummary(ResponseInterface $response)
Definition: vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:134
GuzzleHttp\Exception
Definition: vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php:2
GuzzleHttp\Exception\RequestException\getHandlerContext
getHandlerContext()
Definition: vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:197
Psr\Http\Message\UriInterface
Definition: UriInterface.php:24
Psr\Http\Message\RequestInterface\getMethod
getMethod()
Psr\Http\Message\ResponseInterface
Definition: vendor/psr/http-message/src/ResponseInterface.php:20
GuzzleHttp\Exception\RequestException\__construct
__construct( $message, RequestInterface $request, ResponseInterface $response=null, \Exception $previous=null, array $handlerContext=[])
Definition: vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:32
GuzzleHttp\Exception\TransferException
Definition: guzzlehttp/guzzle/src/Exception/TransferException.php:4
GuzzleHttp\Exception\RequestException\hasResponse
hasResponse()
Definition: vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:182
GuzzleHttp\Exception\RequestException\wrapException
static wrapException(RequestInterface $request, \Exception $e)
Definition: vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:57
Psr\Http\Message\UriInterface\withUserInfo
withUserInfo($user, $password=null)
Psr\Http\Message\RequestInterface\getUri
getUri()
Psr\Http\Message\UriInterface\getUserInfo
getUserInfo()
GuzzleHttp\Exception\RequestException\create
static create(RequestInterface $request, ResponseInterface $response=null, \Exception $previous=null, array $ctx=[])
Definition: vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:74