/** * @covers Guzzle\Http\Message\Request::getPort * @covers Guzzle\Http\Message\Request::setPort */ public function testRequestHasPort() { $this->assertEquals(8124, $this->request->getPort()); $this->assertEquals('127.0.0.1:8124', $this->request->getHeader('Host')); $this->assertEquals($this->request, $this->request->setPort('8080')); $this->assertEquals('8080', $this->request->getPort()); $this->assertEquals('127.0.0.1:8080', $this->request->getHeader('Host')); $this->request->setPort(80); $this->assertEquals('127.0.0.1', $this->request->getHeader('Host')); }
public function testCanChangePortThroughScheme() { $request = new Request('GET', 'http://foo.com'); $request->setScheme('https'); $this->assertEquals('https://foo.com', (string) $request->getUrl()); $this->assertEquals('foo.com', $request->getHost()); $request->setScheme('http'); $this->assertEquals('http://foo.com', (string) $request->getUrl()); $this->assertEquals('foo.com', $request->getHost()); $request->setPort(null); $this->assertEquals('http://foo.com', (string) $request->getUrl()); $this->assertEquals('foo.com', $request->getHost()); }
protected function generateRequest($url, array $subProtocols, array $headers) { $headers = array_merge($this->defaultHeaders, $headers); $headers['Sec-WebSocket-Key'] = $this->generateKey(); $request = new Request('GET', $url, $headers); $scheme = strtolower($request->getScheme()); if (!in_array($scheme, ['ws', 'wss'])) { throw new \InvalidArgumentException(sprintf('Cannot connect to invalid URL (%s)', $url)); } $request->setScheme('HTTP'); if (!$request->getPort()) { $request->setPort('wss' === $scheme ? 443 : 80); } else { $request->setHeader('Host', $request->getHeader('Host') . ":{$request->getPort()}"); } if (!$request->getHeader('Origin')) { $request->setHeader('Origin', str_replace('ws', 'http', $scheme) . '://' . $request->getHost()); } // do protocol headers if (count($subProtocols) > 0) { $protocols = implode(',', $subProtocols); if ($protocols != "") { $request->setHeader('Sec-WebSocket-Protocol', $protocols); } } return $request; }