setAllowCustomMethods(true); $this->setMethod($method); // Remove the "http(s)://hostname" part from the URI $this->setRequestUri(preg_replace('#^[^/:]+://[^/]+#', '', (string) $uri)); $this->setUri((string) $uri); $headerCollection = $this->getHeaders(); foreach ($headers as $name => $values) { foreach ($values as $value) { $headerCollection->addHeaderLine($name, $value); } } if (! empty($cookies)) { $headerCollection->addHeader(new Cookie($cookies)); } $this->setQuery(new Parameters($queryStringArguments)); $this->setPost(new Parameters($postParameters)); $this->setFiles(new Parameters($uploadedFiles)); // Do not use `setServerParams()`, as that extracts headers, URI, etc. $this->serverParams = new Parameters($serverParams); } }