(self, method, url, name=None, **kwargs)
return response
Constructs and sends a :py:class:`requests.Request`.
        Returns :py:class:`requests.Response` object.

        :param method:
            method for the new :class:`Request` object.
        :param url:
            URL for the new :class:`Request` object.
        :param name: (optional)
            Placeholder, make compatible with Locust's HttpSession
        :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 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.
Constructs and sends a :py:class:`requests.Request`.
        Returns :py:class:`requests.Response` object.
Constructs and sends a : py : class : requests . Request . Returns : py : class : requests . Response object .
def request(self, method, url, name=None, **kwargs):
        """
        Constructs and sends a :py:class:`requests.Request`.
        Returns :py:class:`requests.Response` object.

        :param method:
            method for the new :class:`Request` object.
        :param url:
            URL for the new :class:`Request` object.
        :param name: (optional)
            Placeholder, make compatible with Locust's HttpSession
        :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 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.
        """
        self.init_meta_data()

        # record test name
        self.meta_data["name"] = name

        # record original request info
        self.meta_data["data"][0]["request"]["method"] = method
        self.meta_data["data"][0]["request"]["url"] = url
        kwargs.setdefault("timeout", 120)
        self.meta_data["data"][0]["request"].update(kwargs)

        # prepend url with hostname unless it's already an absolute URL
        url = build_url(self.base_url, url)

        start_timestamp = time.time()
        response = self._send_request_safe_mode(method, url, **kwargs)

        # requests包get响应内容中文乱码解决
        if response.content:
            response.encoding = response.apparent_encoding

        response_time_ms = round((time.time() - start_timestamp) * 1000, 2)

        # get the length of the content, but if the argument stream is set to True, we take
        # the size from the content-length header, in order to not trigger fetching of the body
        if kwargs.get("stream", False):
            content_size = int(dict(response.headers).get("content-length") or 0)
        else:
            content_size = len(response.content or "")

        # record the consumed time
        self.meta_data["stat"] = {
            "response_time_ms": response_time_ms,
            "elapsed_ms": response.elapsed.microseconds / 1000.0,
            "content_size": content_size
        }
        # record request and response histories, include 30X redirection
        response_list = response.history + [response]
        self.meta_data["data"] = [
            self.get_req_resp_record(resp_obj)
            for resp_obj in response_list
        ]
        self.meta_data["data"][0]["request"].update(kwargs)
        try:
            response.raise_for_status()
        except RequestException as e:
            logger.log_error(u"{exception}".format(exception=str(e)))
        else:
            logger.log_info(
                """status_code: {}, response_time(ms): {} ms, response_length: {} bytes\n""".format(
                    response.status_code,
                    response_time_ms,
                    content_size
                )
            )

        return response
def request ( self , method , url , name = None , * * kwargs ) : self . init_meta_data ( ) # record test name self . meta_data [ "name" ] = name # record original request info self . meta_data [ "data" ] [ 0 ] [ "request" ] [ "method" ] = method self . meta_data [ "data" ] [ 0 ] [ "request" ] [ "url" ] = url kwargs . setdefault ( "timeout" , 120 ) self . meta_data [ "data" ] [ 0 ] [ "request" ] . update ( kwargs ) # prepend url with hostname unless it's already an absolute URL url = build_url ( self . base_url , url ) start_timestamp = time . time ( ) response = self . _send_request_safe_mode ( method , url , * * kwargs ) # requests包get响应内容中文乱码解决 if response . content : response . encoding = response . apparent_encoding response_time_ms = round ( ( time . time ( ) - start_timestamp ) * 1000 , 2 ) # get the length of the content, but if the argument stream is set to True, we take # the size from the content-length header, in order to not trigger fetching of the body if kwargs . get ( "stream" , False ) : content_size = int ( dict ( response . headers ) . get ( "content-length" ) or 0 ) else : content_size = len ( response . content or "" ) # record the consumed time self . meta_data [ "stat" ] = { "response_time_ms" : response_time_ms , "elapsed_ms" : response . elapsed . microseconds / 1000.0 , "content_size" : content_size } # record request and response histories, include 30X redirection response_list = response . history + [ response ] self . meta_data [ "data" ] = [ self . get_req_resp_record ( resp_obj ) for resp_obj in response_list ] self . meta_data [ "data" ] [ 0 ] [ "request" ] . update ( kwargs ) try : response . raise_for_status ( ) except RequestException as e : logger . log_error ( u"{exception}" . format ( exception = str ( e ) ) ) else : logger . log_info ( """status_code: {}, response_time(ms): {} ms, response_length: {} bytes\n""" . format ( response . status_code , response_time_ms , content_size ) ) return response