code: def getURIWithRedirect(self, url):
          '''fetch a URL with redirect handling'''
          tries = 0
          while tries < 5:
                  conn = httplib.HTTPConnection(self.server)
                  conn.request("GET", url)
                  r1 = conn.getresponse()
                  if r1.status in [301, 302, 303, 307]:
                      location = r1.getheader('Location')
                      if self.debug:
                          print("redirect from %s to %s" % (url, location))
                      url = location
                      conn.close()
                      tries += 1
                      continue
                  data = r1.read()
                  conn.close()
                  if sys.version_info.major < 3:
                      return data
                  else:
                      encoding = r1.headers.get_content_charset(default)
                      return data.decode(encoding)
          return Nonf getURIWithRedirect(self, url):
          '''fetch a URL with redirect handling'''
          tries = 0
          while tries < 5:
                  conn = httplib.HTTPConnection(self.server)
                  conn.request("GET", url)
                  r1 = conn.getresponse()
                  if r1.status in [301, 302, 303, 307]:
                      location = r1.getheader('Location')
                      if self.debug:
                          print("redirect from %s to %s" % (url, location))
                      url = location
                      conn.close()
                      tries += 1
                      continue
                  data = r1.read()
                  conn.close()
                  if sys.version_info.major < 3:
                      return data
                  else:
                      encoding = r1.headers.get_content_charset(default)
                      return data.decode(encoding)
          return None
docs: fetch a URL with redirect handling