1
0
mirror of https://github.com/guzzle/guzzle.git synced 2025-02-24 10:03:27 +01:00

The "Host" header is being preserved, if it was set manually.

This commit is contained in:
Aleksey Kozakov 2016-01-22 12:20:07 +02:00
parent 789bd2309e
commit afaa8917cb
2 changed files with 24 additions and 1 deletions

View File

@ -93,7 +93,7 @@ class Client implements ClientInterface
$options = $this->prepareDefaults($options);
return $this->transfer(
$request->withUri($this->buildUri($request->getUri(), $options)),
$request->withUri($this->buildUri($request->getUri(), $options), $request->hasHeader("Host")),
$options
);
}

View File

@ -592,4 +592,27 @@ class ClientTest extends \PHPUnit_Framework_TestCase
$client->send($request, ['query' => ['foo' => 'bar', 'john' => 'doe']]);
$this->assertEquals('foo=bar&john=doe', $mock->getLastRequest()->getUri()->getQuery());
}
public function testSendSendsWithIpAddressAndPortAndHostHeaderInRequestTheHostShouldBePreserved()
{
$mockHandler = new MockHandler([new Response(200)]);
$client = new Client(['base_uri' => '127.0.0.1:8585', 'handler' => $mockHandler]);
$request = new Request('GET', '/test', ["Host"=>"foo.com"]);
$client->send($request);
$this->assertEquals("foo.com", $mockHandler->getLastRequest()->getHeader("Host")[0]);
}
public function testSendSendsWithDomainAndHostHeaderInRequestTheHostShouldBePreserved()
{
$mockHandler = new MockHandler([new Response(200)]);
$client = new Client(['base_uri' => 'http://foo2.com', 'handler' => $mockHandler]);
$request = new Request('GET', '/test', ["Host"=>"foo.com"]);
$client->send($request);
$this->assertEquals("foo.com", $mockHandler->getLastRequest()->getHeader("Host")[0]);
}
}