def __init()

in apisix/runner/http/request.py [0:0]


    def __init(self) -> None:
        """
        init request handler
        :return:
        """
        if self.r.request.ty == runner_utils.RPC_HTTP_REQ_CALL:
            req = HCReq.Req.GetRootAsReq(self.r.request.data)

            # fetch request id
            self.set_id(req.Id())

            # fetch request conf token
            self.set_conf_token(req.ConfToken())

            # fetch request method
            self.set_method(runner_utils.get_method_name_by_code(req.Method()))

            # fetch request remote_addr
            ip_list = runner_utils.parse_list_vector(req, runner_utils.VECTOR_TYPE_SOURCE_IP, True)
            if len(ip_list) == 16:
                self.set_remote_addr(IPv6Address(bytes(ip_list)).exploded)
            else:
                self.set_remote_addr(IPv4Address(bytes(ip_list)).exploded)

            # fetch request uri
            self.set_uri(req.Path().decode())

            # fetch request headers
            hdr_dict = runner_utils.parse_dict_vector(req, runner_utils.VECTOR_TYPE_HEADER)
            self.set_headers(hdr_dict)

            # fetch request args
            arg_dict = runner_utils.parse_dict_vector(req, runner_utils.VECTOR_TYPE_QUERY)
            self.set_args(arg_dict)

        if self.r.request.ty == runner_utils.RPC_PREPARE_CONF:
            req = PCReq.Req.GetRootAsReq(self.r.request.data)
            for i in range(req.ConfLength()):
                # fetch request config
                name = req.Conf(i).Name().decode()
                config = req.Conf(i).Value().decode()
                self.set_config(name, config)