def METHOD_NAME(self, method, url, fields=None, headers=None, **urlopen_kw):
    """
    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`.
    """
    method = method.upper()
    urlopen_kw["request_url"] = url
    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
        )