Exemplo n.º 1
0
 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'));
 }
Exemplo n.º 2
0
 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'));
 }
Exemplo n.º 3
0
 /**
  * {@inheritDoc}
  */
 public function getHeader($header)
 {
     return (string) $this->request->getHeader($header);
 }
Exemplo n.º 4
0
 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);
 }