code: def full_url(self):
          
  
          if not self.url:
              raise URLRequired()
  
          # Support for unicode domain names and paths.
          scheme, netloc, path, params, query, fragment = urlparse(self.url)
  
          if not scheme:
              raise ValueError()
  
          netloc = netloc.encode('idna')
  
          if isinstance(path, unicode):
              path = path.encode('utf-8')
  
          path = urllib.quote(urllib.unquote(path))
  
          url = str(urlunparse([ scheme, netloc, path, params, query, fragment ]))
  
          if self._enc_params:
              if urlparse(url).query:
                  return '%s&%s' % (url, self._enc_params)
              else:
                  return '%s?%s' % (url, self._enc_params)
          else:
              return url
docs: Build the actual URL to use.