diff --git a/src/Client.php b/src/Client.php index 456564c..677a00f 100644 --- a/src/Client.php +++ b/src/Client.php @@ -15,9 +15,9 @@ public function __construct(ConnectorInterface $connector, ConnectorInterface $s $this->secureConnector = $secureConnector; } - public function request($method, $url, array $headers = []) + public function request($method, $url, array $headers = [], $protocolVersion = '1.0') { - $requestData = new RequestData($method, $url, $headers); + $requestData = new RequestData($method, $url, $headers, $protocolVersion); $connector = $this->getConnectorForScheme($requestData->getScheme()); return new Request($connector, $requestData); diff --git a/src/RequestData.php b/src/RequestData.php index 2d379aa..961db22 100644 --- a/src/RequestData.php +++ b/src/RequestData.php @@ -7,14 +7,14 @@ class RequestData private $method; private $url; private $headers; + private $protocolVersion; - private $protocolVersion = '1.0'; - - public function __construct($method, $url, array $headers = []) + public function __construct($method, $url, array $headers = [], $protocolVersion = '1.0') { $this->method = $method; $this->url = $url; $this->headers = $headers; + $this->protocolVersion = $protocolVersion; } private function mergeDefaultheaders(array $headers) diff --git a/tests/RequestDataTest.php b/tests/RequestDataTest.php index 7fbeb55..6fc8f15 100644 --- a/tests/RequestDataTest.php +++ b/tests/RequestDataTest.php @@ -34,6 +34,20 @@ public function toStringReturnsHTTPRequestMessageWithProtocolVersion() $this->assertSame($expected, $requestData->__toString()); } + /** @test */ + public function toStringReturnsHTTPRequestMessageWithProtocolVersionThroughConstructor() + { + $requestData = new RequestData('GET', 'http://www.example.com', [], '1.1'); + + $expected = "GET / HTTP/1.1\r\n" . + "Host: www.example.com\r\n" . + "User-Agent: React/alpha\r\n" . + "Connection: close\r\n" . + "\r\n"; + + $this->assertSame($expected, $requestData->__toString()); + } + /** @test */ public function toStringUsesUserPassFromURL() {