diff --git a/Request.php b/Request.php
index <HASH>..<HASH> 100644
--- a/Request.php
+++ b/Request.php
@@ -71,11 +71,19 @@ class Request extends AbstractRequest
 
     /**
      * @param null|string|UriInterface $uri
-     * @return static
+     * @param bool $preserveHost
      */
-    public function setUri($uri)
+    public function setUri($uri, $preserveHost = false)
     {
-        $uri = new Uri((string) $uri);
-        return $this->withUri($uri);
+        $this->uri = new Uri((string) $uri);
+
+        if (!$preserveHost || !$this->getHeader('Host')) {
+            if ($host = $uri->getHost()) {
+                if ($port = $uri->getPort()) {
+                    $host .= ':' . $port;
+                }
+                $this->setHeader('Host', $host);
+            }
+        }
     }
 }
\ No newline at end of file
Request::setUri

Adapt method for constructor.