public function testSetsIntegersAndFloatsAsHeaders() { $h = new Request('GET', 'http://foo.com'); $h->setHeader('foo', 10); $h->setHeader('bar', 10.5); $h->addHeader('foo', 10); $h->addHeader('bar', 10.5); $this->assertSame('10, 10', $h->getHeader('foo')); $this->assertSame('10.5, 10.5', $h->getHeader('bar')); }
public function testCanChangePort() { $r = new Request('GET', 'http://www.foo.com:222'); $this->assertSame(222, $r->getPort()); $this->assertEquals('www.foo.com', $r->getHost()); $this->assertEquals('www.foo.com:222', $r->getHeader('host')); $r->setPort(80); $this->assertSame(80, $r->getPort()); $this->assertEquals('www.foo.com', $r->getHost()); $this->assertEquals('www.foo.com', $r->getHeader('host')); }
/** * {@inheritDoc} */ public function getHeader($header) { return (string) $this->request->getHeader($header); }
public function testCanChangeHost() { $r = new Request('GET', 'http://www.foo.com:222'); $r->setHost('goo'); $this->assertEquals('http://goo:222', $r->getUrl()); $this->assertEquals('goo:222', $r->getHeader('host')); $r->setHost('goo:80'); $this->assertEquals('http://goo', $r->getUrl()); $this->assertEquals('goo', $r->getHeader('host')); }
/** * Announces HTTP request to Wildfire channel * * @param GuzzleHttp\Message\Request * @param GuzzleHttp\Message\Response when dealing with error events, response may not be populated * @param float $elapsed */ public function publishRequest(Request $request, Response $response = null, $elapsed = 0) { $request_body = $request->getBody(); $request_preview = ''; if ($request_body) { $request_body->seek(0); // rewind the cursor in case a read was already done $request_preview = $request_body->read($this->_preview_length); $request_body->seek(0); // rewind the cursor, so subsequent reads are not affected } // Ensure response is populated before extracting body from it $response_body = $response ? $response->getBody() : ''; $response_preview = ''; if ($response_body) { $response_body->seek(0); // rewind the cursor, in case a read was already done $response_preview = $response_body->read($this->_preview_length); $response_body->seek(0); // rewind the cursor, so subsequent reads are not affected } $phrase = $response ? $response->getReasonPhrase() : self::ERROR_NO_RESPONSE; $table = []; $table[] = ['Key', 'Value']; $table[] = ['Phrase', $phrase]; $table[] = ['Host', $request->getHost()]; $table[] = ['Protocol', $request->getScheme()]; $table[] = ['User Agent', $request->getHeader('User-Agent')]; $table[] = ['Request', $request_preview]; $table[] = ['Response', $response_preview]; if ($response && $response->getEffectiveUrl() != $request->getUrl()) { $table[] = ['Effective URL', $response->getEffectiveUrl()]; } $elapsed = number_format($elapsed, 4); $status = $response ? $response->getStatusCode() : 0; $message = sprintf("%s <%s> (%d) %s (%f)s", $this->_remote_prefix, $request->getMethod(), $status, $request->getUrl(), $elapsed); $this->_client->table($message, $table); }