Esempio n. 1
0
 /**
  * Throw a RequestException on an HTTP protocol error
  *
  * @param CompleteEvent $event Emitted event
  * @throws RequestException
  */
 public function onComplete(CompleteEvent $event)
 {
     $code = (string) $event->getResponse()->getStatusCode();
     // Throw an exception for an unsuccessful response
     if ($code[0] >= 4) {
         throw RequestException::create($event->getRequest(), $event->getResponse());
     }
 }
Esempio n. 2
0
 /**
  * Called when a request receives a redirect response
  *
  * @param CompleteEvent $event Event emitted
  * @throws TooManyRedirectsException
  */
 public function onComplete(CompleteEvent $event)
 {
     $response = $event->getResponse();
     if (substr($response->getStatusCode(), 0, 1) != '3' || !$response->hasHeader('Location')) {
         return;
     }
     $request = $event->getRequest();
     $config = $request->getConfig();
     // Increment the redirect and initialize the redirect state.
     if ($redirectCount = $config['redirect_count']) {
         $config['redirect_count'] = ++$redirectCount;
     } else {
         $config['redirect_scheme'] = $request->getScheme();
         $config['redirect_count'] = $redirectCount = 1;
     }
     $max = $config->getPath('redirect/max') ?: 5;
     if ($redirectCount > $max) {
         throw new TooManyRedirectsException("Will not follow more than {$redirectCount} redirects", $request);
     }
     $this->modifyRedirectRequest($request, $response);
     $event->retry();
 }
Esempio n. 3
0
 public function onComplete(CompleteEvent $event)
 {
     $this->cookieJar->extractCookies($event->getRequest(), $event->getResponse());
 }
Esempio n. 4
0
 public function onComplete(CompleteEvent $event)
 {
     $this->add($event->getRequest(), $event->getResponse());
 }