code: def _build_url(url, _params):
      
  
      # Support for unicode domain names and paths.
      scheme, netloc, path, params, query, fragment = urlparse(url)
      netloc = netloc.encode('idna').decode('utf-8')
      if not path:
          path = '/'
  
      if six.PY2:
          if isinstance(scheme, six.text_type):
              scheme = scheme.encode('utf-8')
          if isinstance(netloc, six.text_type):
              netloc = netloc.encode('utf-8')
          if isinstance(path, six.text_type):
              path = path.encode('utf-8')
          if isinstance(params, six.text_type):
              params = params.encode('utf-8')
          if isinstance(query, six.text_type):
              query = query.encode('utf-8')
          if isinstance(fragment, six.text_type):
              fragment = fragment.encode('utf-8')
  
      enc_params = _encode_params(_params)
      if enc_params:
          if query:
              query = '%s&%s' % (query, enc_params)
          else:
              query = enc_params
      url = (urlunparse([scheme, netloc, path, params, query, fragment]))
      return url
docs: Build the actual URL to use.