Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

RequestException.php

Zuletzt modifiziert: 09.10.2024, 12:57 - Dateigröße: 3.34 KiB


001  <?php
002  namespace GuzzleHttp\Exception;
003   
004  use GuzzleHttp\Message\RequestInterface;
005  use GuzzleHttp\Message\ResponseInterface;
006  use GuzzleHttp\Ring\Exception\ConnectException;
007  use GuzzleHttp\Exception\ConnectException as HttpConnectException;
008  use GuzzleHttp\Ring\Future\FutureInterface;
009   
010  /**
011   * HTTP Request exception
012   */
013  class RequestException extends TransferException
014  {
015      /** @var RequestInterface */
016      private $request;
017   
018      /** @var ResponseInterface */
019      private $response;
020   
021      public function __construct(
022          $message,
023          RequestInterface $request,
024          ResponseInterface $response = null,
025          \Exception $previous = null
026      ) {
027          // Set the code of the exception if the response is set and not future.
028          $code = $response && !($response instanceof FutureInterface)
029              ? $response->getStatusCode()
030              : 0;
031          parent::__construct($message, $code, $previous);
032          $this->request = $request;
033          $this->response = $response;
034      }
035   
036      /**
037       * Wrap non-RequestExceptions with a RequestException
038       *
039       * @param RequestInterface $request
040       * @param \Exception       $e
041       *
042       * @return RequestException
043       */
044      public static function wrapException(RequestInterface $request, \Exception $e)
045      {
046          if ($e instanceof RequestException) {
047              return $e;
048          } elseif ($e instanceof ConnectException) {
049              return new HttpConnectException($e->getMessage(), $request, null, $e);
050          } else {
051              return new RequestException($e->getMessage(), $request, null, $e);
052          }
053      }
054   
055      /**
056       * Factory method to create a new exception with a normalized error message
057       *
058       * @param RequestInterface  $request  Request
059       * @param ResponseInterface $response Response received
060       * @param \Exception        $previous Previous exception
061       *
062       * @return self
063       */
064      public static function create(
065          RequestInterface $request,
066          ResponseInterface $response = null,
067          \Exception $previous = null
068      ) {
069          if (!$response) {
070              return new self('Error completing request', $request, null, $previous);
071          }
072   
073          $level = floor($response->getStatusCode() / 100);
074          if ($level == '4') {
075              $label = 'Client error response';
076              $className = __NAMESPACE__ . '\\ClientException';
077          } elseif ($level == '5') {
078              $label = 'Server error response';
079              $className = __NAMESPACE__ . '\\ServerException';
080          } else {
081              $label = 'Unsuccessful response';
082              $className = __CLASS__;
083          }
084   
085          $message = $label . ' [url] ' . $request->getUrl()
086              . ' [status code] ' . $response->getStatusCode()
087              . ' [reason phrase] ' . $response->getReasonPhrase();
088   
089          return new $className($message, $request, $response, $previous);
090      }
091   
092      /**
093       * Get the request that caused the exception
094       *
095       * @return RequestInterface
096       */
097      public function getRequest()
098      {
099          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  }
122