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

Add Via headers to requests/responses going through the cache plugin

This commit is contained in:
thewilkybarkid 2013-02-25 12:46:24 +00:00
parent 7b10768a4c
commit 41df91d352
2 changed files with 9 additions and 0 deletions

View File

@ -5,6 +5,7 @@ namespace Guzzle\Plugin\Cache;
use Guzzle\Cache\CacheAdapterInterface;
use Guzzle\Common\Event;
use Guzzle\Common\Exception\InvalidArgumentException;
use Guzzle\Common\Version;
use Guzzle\Http\Message\RequestInterface;
use Guzzle\Http\Message\Response;
use Guzzle\Cache\DoctrineCacheAdapter;
@ -149,6 +150,9 @@ class CachePlugin implements EventSubscriberInterface
public function onRequestBeforeSend(Event $event)
{
$request = $event['request'];
$request->addHeader('Via', sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION));
if (!$this->canCache->canCacheRequest($request)) {
return;
}
@ -197,6 +201,8 @@ class CachePlugin implements EventSubscriberInterface
}
}
$response->addHeader('Via', sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION));
if ($this->debugHeaders) {
if ($request->getParams()->get('cache.lookup') === true) {
$response->addHeader('X-Cache-Lookup', 'HIT from GuzzleCache');

View File

@ -3,6 +3,7 @@
namespace Guzzle\Tests\Plugin\Cache;
use Guzzle\Common\Event;
use Guzzle\Common\Version;
use Guzzle\Cache\DoctrineCacheAdapter;
use Guzzle\Http\Message\Request;
use Guzzle\Http\Message\Response;
@ -198,6 +199,8 @@ class CachePluginTest extends \Guzzle\Tests\GuzzleTestCase
$this->assertEquals($response[2], $request->getResponse()->getBody(true));
$this->assertContains('key=', (string) $request->getResponse()->getHeader('X-Guzzle-Cache'));
$this->assertTrue($request->getResponse()->hasHeader('Age'));
$this->assertSame(sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION), $request->getHeader('Via', true));
$this->assertSame(sprintf('%s GuzzleCache/%s', $request->getProtocolVersion(), Version::VERSION), $request->getResponse()->getHeader('Via', true));
$this->assertTrue($request->getParams()->get('cache.lookup'));
$this->assertTrue($request->getParams()->get('cache.hit'));