def request(self, method, url,<EOL>params=None,<EOL>data=None,<EOL>headers=None,<EOL>cookies=None,<EOL>files=None,<EOL>auth=None,<EOL>timeout=None,<EOL>allow_redirects=True,<EOL>proxies=None,<EOL>hooks=None,<EOL>stream=None,<EOL>verify=None,<EOL>cert=None,<EOL>json=None):
method = to_native_string(method)<EOL>req = Request(<EOL>method = method.upper(),<EOL>url = url,<EOL>headers = headers,<EOL>files = files,<EOL>data = data or {},<EOL>json = json,<EOL>params = params or {},<EOL>auth = auth,<EOL>cookies = cookies,<EOL>hooks = hooks,<EOL>)<EOL>prep = self.prepare_request(req)<EOL>proxies = proxies or {}<EOL>settings = self.merge_environment_settings(<EOL>prep.url, proxies, stream, verify, cert<EOL>)<EOL>send_kwargs = {<EOL>'<STR_LIT>': timeout,<EOL>'<STR_LIT>': allow_redirects,<EOL>}<EOL>send_kwargs.update(settings)<EOL>resp = self.send(prep, **send_kwargs)<EOL>return resp<EOL>
Constructs a :class:`Request <Request>`, prepares it and sends it.
        Returns :class:`Response <Response>` object.

        :param method: method for the new :class:`Request` object.
        :param url: URL for the new :class:`Request` object.
        :param params: (optional) Dictionary or bytes to be sent in the query
            string for the :class:`Request`.
        :param data: (optional) Dictionary or bytes to send in the body of the
            :class:`Request`.
        :param json: (optional) json to send in the body of the
            :class:`Request`.
        :param headers: (optional) Dictionary of HTTP Headers to send with the
            :class:`Request`.
        :param cookies: (optional) Dict or CookieJar object to send with the
            :class:`Request`.
        :param files: (optional) Dictionary of ``'filename': file-like-objects``
            for multipart encoding upload.
        :param auth: (optional) Auth tuple or callable to enable
            Basic/Digest/Custom HTTP Auth.
        :param timeout: (optional) How long to wait for the server to send
            data before giving up, as a float, or a (`connect timeout, read
            timeout <user/advanced.html#timeouts>`_) tuple.
        :type timeout: float or tuple
        :param allow_redirects: (optional) Set to True by default.
        :type allow_redirects: bool
        :param proxies: (optional) Dictionary mapping protocol to the URL of
            the proxy.
        :param stream: (optional) whether to immediately download the response
            content. Defaults to ``False``.
        :param verify: (optional) if ``True``, the SSL cert will be verified.
            A CA_BUNDLE path can also be provided.
        :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair.