Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 /**
  * @covers Guzzle\Http\Message\Request::getScheme
  * @covers Guzzle\Http\Message\Request::setScheme
  */
 public function testRequestHasScheme()
 {
     $this->assertEquals('http', $this->request->getScheme());
     $this->assertEquals($this->request, $this->request->setScheme('https'));
     $this->assertEquals('https', $this->request->getScheme());
 }
Esempio n. 3
0
 public function request($method, $url, array $headers = array())
 {
     $guzzleRequest = new GuzzleRequest($method, $url, $headers);
     $connectionManager = $this->getConnectionManagerForScheme($guzzleRequest->getScheme());
     return new ClientRequest($this->loop, $connectionManager, $guzzleRequest);
 }