Called when a request receives a redirect response
public function onRequestSent(Event $event) {
$response = $event['response'];
$request = $event['request'];
// Only act on redirect requests with Location headers
if (!$response || !$response
->isRedirect() || !$response
->hasHeader('Location') || $request
->getParams()
->get(self::DISABLE)) {
return;
}
// Prepare the request for a redirect and grab the original request that started the transaction
$originalRequest = $this
->prepareRedirection($request);
// Create a redirect request based on the redirect rules set on the request
$redirectRequest = $this
->createRedirectRequest($request, $event['response']
->getStatusCode(), trim($response
->getHeader('Location')), $originalRequest);
// Send the redirect request and hijack the response of the original request
$redirectResponse = $redirectRequest
->send();
$redirectResponse
->setPreviousResponse($event['response']);
$request
->setResponse($redirectResponse);
}