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:
parent
7b10768a4c
commit
41df91d352
@ -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');
|
||||
|
@ -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'));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user