public function RedirectPlugin::onRequestSent

Called when a request receives a redirect response

Parameters

Event $event Event emitted:

File

drupal/core/vendor/guzzle/http/Guzzle/Http/RedirectPlugin.php, line 56

Class

RedirectPlugin
Plugin to implement HTTP redirects. Can redirect like a web browser or using strict RFC 2616 compliance

Namespace

Guzzle\Http

Code

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);
}