/** * Sign the current request for write operations * * @param Request $request The current request */ private function addAuthenticationHeaders(Request $request) { $client = $request->getClient(); // Get a GMT/UTC timestamp $timestamp = gmdate('Y-m-d\\TH:i:s\\Z'); // Build the data to base the hash on $data = $request->getMethod() . '|' . $request->getUrl() . '|' . $client->getConfig('publicKey') . '|' . $timestamp; // Generate signature $signature = hash_hmac('sha256', $data, $client->getConfig('privateKey')); // Add relevant request headers (overwriting once that might already exist) $request->setHeader('X-Imbo-Authenticate-Signature', $signature); $request->setHeader('X-Imbo-Authenticate-Timestamp', $timestamp); }
/** * @param \Guzzle\Http\Message\Request $request */ public function signRequest(Request $request) { $requestWrapper = new RequestWrapper($request); if (!$request->hasHeader('Date')) { $time = new \DateTime(); $time->setTimezone(new \DateTimeZone('GMT')); $request->setHeader('Date', $time->format(ClientInterface::HTTP_DATE)); } if (!$request->hasHeader('Content-Type')) { $request->setHeader('Content-Type', $this->defaultContentType); } $authorization = $this->requestSigner->getAuthorization($requestWrapper, $this->id, $this->secretKey); $request->setHeader('Authorization', $authorization); }
/** * @covers Guzzle\Http\Message\Request::changedHeader * @covers Guzzle\Http\Message\Request::setHeader */ public function testCatchesAllHostHeaderChanges() { // Tests setting using headers $this->request->setHeader('Host', 'www.abc.com'); $this->assertEquals('www.abc.com', $this->request->getHost()); $this->assertEquals('www.abc.com:8124', $this->request->getHeader('Host')); $this->assertEquals(8124, $this->request->getPort()); // Tests setting using setHost() $this->request->setHost('abc.com'); $this->assertEquals('abc.com', $this->request->getHost()); $this->assertEquals('abc.com:8124', $this->request->getHeader('Host')); $this->assertEquals(8124, $this->request->getPort()); // Tests setting with a port $this->request->setHost('abc.com:8081'); $this->assertEquals('abc.com', $this->request->getHost()); $this->assertEquals('abc.com:8081', $this->request->getHeader('Host')); $this->assertEquals(8081, $this->request->getPort()); // Tests setting with a port using the Host header $this->request->setHeader('Host', 'solr.com:8983'); $this->assertEquals('solr.com', $this->request->getHost()); $this->assertEquals('solr.com:8983', (string) $this->request->getHeader('Host')); $this->assertEquals(8983, $this->request->getPort()); // Tests setting with an inferred 443 port using the Host header $this->request->setScheme('https'); $this->request->setHeader('Host', 'solr.com'); $this->assertEquals('solr.com', $this->request->getHost()); $this->assertEquals('solr.com:8983', (string) $this->request->getHeader('Host')); $this->assertEquals(8983, $this->request->getPort()); }
public function testHoldsCookies() { $this->assertNull($this->request->getCookie('test')); // Set a cookie $this->assertSame($this->request, $this->request->addCookie('test', 'abc')); $this->assertEquals('abc', $this->request->getCookie('test')); // Multiple cookies by setting the Cookie header $this->request->setHeader('Cookie', '__utma=1.638370270.1344367610.1374365610.1944450276.2; __utmz=1.1346368610.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); hl=de; PHPSESSID=ak93pqashi5uubuoq8fjv60897'); $this->assertEquals('1.638370270.1344367610.1374365610.1944450276.2', $this->request->getCookie('__utma')); $this->assertEquals('1.1346368610.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', $this->request->getCookie('__utmz')); $this->assertEquals('de', $this->request->getCookie('hl')); $this->assertEquals('ak93pqashi5uubuoq8fjv60897', $this->request->getCookie('PHPSESSID')); // Unset the cookies by setting the Cookie header to null $this->request->setHeader('Cookie', null); $this->assertNull($this->request->getCookie('test')); $this->request->removeHeader('Cookie'); // Set and remove a cookie $this->assertSame($this->request, $this->request->addCookie('test', 'abc')); $this->assertEquals('abc', $this->request->getCookie('test')); $this->assertSame($this->request, $this->request->removeCookie('test')); $this->assertNull($this->request->getCookie('test')); // Remove the cookie header $this->assertSame($this->request, $this->request->addCookie('test', 'abc')); $this->request->removeHeader('Cookie'); $this->assertEquals('', (string) $this->request->getHeader('Cookie')); // Remove a cookie value $this->request->addCookie('foo', 'bar')->addCookie('baz', 'boo'); $this->request->removeCookie('foo'); $this->assertEquals(array('baz' => 'boo'), $this->request->getCookies()); $this->request->addCookie('foo', 'bar'); $this->assertEquals('baz=boo; foo=bar', (string) $this->request->getHeader('Cookie')); }
/** * Send the request */ public function send() { // make a request object $this->request = $this->client->createRequest($this->method, $this->host . $this->resource); // set headers foreach ($this->headers as $header => $value) { $this->request->setHeader($header, $value); } // set body if (!empty($this->body)) { $this->request->setBody($this->body); } try { // finally send the request $this->response = $this->client->send($this->request); } catch (BadResponseException $e) { $this->response = $this->request->getResponse(); } $this->sent = true; }
public function setRequestAuthentication(\Guzzle\Http\Message\Request $request) { $oauthAccessToken = $this->configuration->get('oauthAccessToken'); // Do we have an oAuth2 access token? if (!empty($oauthAccessToken)) { $request->setHeader('Authorization', 'Bearer ' . $oauthAccessToken); } else { // Otherwise, use basic authentication $request->setAuth($this->configuration->get('apiToken'), $this->configuration->get('apiSecret')); } return $request; }
/** * @When /^I request "(GET|PUT|POST|DELETE|PATCH) ([^"]*)"$/ */ public function iRequest($httpMethod, $resource) { // process any %battles.last.id% syntaxes $resource = $this->processReplacements($resource); $this->resource = $resource; // reset the response payload $this->responsePayload = null; $method = strtolower($httpMethod); try { switch ($httpMethod) { case 'PUT': case 'POST': case 'PATCH': // process any %user.weaverryan.id% syntaxes $payload = $this->processReplacements($this->requestPayload); $this->lastRequest = $this->client->{$method}($resource, null, $payload); break; default: $this->lastRequest = $this->client->{$method}($resource); } if ($this->authUser) { $this->lastRequest->setAuth($this->authUser, $this->authPassword); } foreach ($this->headers as $key => $val) { $this->lastRequest->setHeader($key, $val); } $this->response = $this->lastRequest->send(); } catch (BadResponseException $e) { $response = $e->getResponse(); // Sometimes the request will fail, at which point we have // no response at all. Let Guzzle give an error here, it's // pretty self-explanatory. if ($response === null) { throw $e; } $this->response = $e->getResponse(); } }
public function setHeader($name, $value) { $this->_request->setHeader($name, $value); return $this; }
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; }
/** * Function to set headers on the request * * @param array $requestHeaders Any additional headers for the request * @return void */ public function setHeaders($requestHeaders = array()) { foreach ($requestHeaders as $header => $value) { $this->request->setHeader($header, $value); } }
/** * * @param \Guzzle\Http\Message\Request $request * @return \ChartBlocks\Client */ public function bindAccept(HttpRequest $request) { $request->setHeader('Accept', 'application/json'); return $this; }
/** * @param \Guzzle\Http\Message\Request $request * @return \Guzzle\Http\Message\Response */ public function send(\Guzzle\Http\Message\Request $request) { $token = $this->getToken(); $request->setHeader('X-Auth-Token', $token['token'])->setHeader('Content-Type', 'application/json')->setHeader('X-Auth-UserId', $token['user_id']); return $request->send(); }