diff --git a/src/Exception/StreamException.php b/src/Exception/StreamException.php index d40a6ce..6437cec 100644 --- a/src/Exception/StreamException.php +++ b/src/Exception/StreamException.php @@ -3,7 +3,36 @@ namespace Http\Client\Socket\Exception; use Http\Client\Exception; +use Psr\Http\Message\RequestInterface; class StreamException extends \RuntimeException implements Exception { + /** + * The request object. + * + * @var RequestInterface + */ + private $request; + + /** + * Accepts an optional request object as 4th param. + * + * @param string $message + * @param int $code + * @param Exception $previous + * @param RequestInterface $request + */ + public function __construct($message = null, $code = null, $previous = null, RequestInterface $request = null) + { + $this->request = $request; + parent::__construct($message, $code, $previous); + } + + /** + * @return \Psr\Http\Message\RequestInterface|null + */ + final public function getRequest() + { + return $this->request; + } } diff --git a/src/ResponseReader.php b/src/ResponseReader.php index ba4442e..f5fd083 100644 --- a/src/ResponseReader.php +++ b/src/ResponseReader.php @@ -48,7 +48,7 @@ protected function readResponse(RequestInterface $request, $socket) $metadatas = stream_get_meta_data($socket); if (array_key_exists('timed_out', $metadatas) && true === $metadatas['timed_out']) { - throw new TimeoutException('Error while reading response, stream timed out', $request); + throw new TimeoutException('Error while reading response, stream timed out', null, null, $request); } $parts = explode(' ', array_shift($headers), 3);