code: protected function fetchWhileRedirected($url, $encoding)
      {
          $redirects = 0;
          do {
              $response = $this->fetch($url, $encoding);
              if ($response->isError()) {
                  return $response;
              }
              $headers = $response->getHeaders();
              if ($this->cookies_enabled) {
                  $headers->writeCookiesToJar($this->cookie_jar, $url);
              }
              if (! $headers->isRedirect()) {
                  break;
              }
              $location = new SimpleUrl($headers->getLocation());
              $url      = $location->makeAbsolute($url);
              $encoding = new SimpleGetEncoding();
          } while (! $this->isTooManyRedirects(++$redirects));
  
          return $response;
      }
docs: Fetches the page until no longer redirected or until the redirect limit runs out.
  
  @param SimpleUrl $url                  Target to fetch.
  @param SimpelFormEncoding $encoding    Additional parameters for request.
  
  @return SimpleHttpResponse             Hopefully the target page.