code: def request(self, method, url, fields=None, headers=None, **urlopen_kw):
          
          method = method.upper()
  
          if method in self._encode_url_methods:
              return self.request_encode_url(method, url, fields=fields,
                                             headers=headers,
                                             **urlopen_kw)
          else:
              return self.request_encode_body(method, url, fields=fields,
                                              headers=headers,
                                              **urlopen_kw)
docs: Make a request using :meth:`urlopen` with the appropriate encoding of
          ``fields`` based on the ``method`` used.
  
          This is a convenience method that requires the least amount of manual
          effort. It can be used in most situations, while still having the
          option to drop down to more specific methods when necessary, such as
          :meth:`request_encode_url`, :meth:`request_encode_body`,
          or even the lowest level :meth:`urlopen`.