/**
  * Constructor.
  *
  * @param  string|UriInterface  $uri      The redirect uri.
  * @param  int                  $status   The status code.
  * @param  array                $headers  The custom headers.
  */
 public function __construct($uri, $status = 303, array $headers = array())
 {
     if ($uri instanceof UriInterface || $uri instanceof \Windwalker\Uri\UriInterface) {
         $uri = (string) $uri;
     }
     if (!is_string($uri)) {
         throw new \InvalidArgumentException(sprintf('Invalid URI type, string or UriInterface required, %s provided.', gettype($uri)));
     }
     $headers['location'] = array($uri);
     parent::__construct(new Stream('php://temp', 'r'), $status, $headers);
 }
 /**
  * Constructor.
  *
  * @param  int     $status   The status code.
  * @param  array   $headers  The custom headers.
  */
 public function __construct($status = 204, array $headers = array())
 {
     $body = new Stream('php://memory', Stream::MODE_READ_ONLY_FROM_BEGIN);
     parent::__construct($body, $status, $headers);
 }
 /**
  * Constructor.
  *
  * @param  string  $body     The body data.
  * @param  int     $status   The status code.
  * @param  array   $headers  The custom headers.
  */
 public function __construct($body = '', $status = 200, array $headers = array())
 {
     parent::__construct($this->handleBody($body), $status, $this->addContentTypeToHeader($headers, $this->type . '; charset=utf-8'));
 }