Ejemplo n.º 1
0
        public static bool WebRegSaveParam(ResponseDelegateArgs args)
        {
            var _args = args as WebRegSaveParamArgs;

            StringBuilder sb = new StringBuilder();

            if (_args.Search == SearchIn.All || _args.Search == SearchIn.Headers)
            {
                sb.Append(_args.Response.Headers.ToString());
                sb.Append(_args.Response.Content.Headers.ToString());
            }
            if (_args.Search == SearchIn.All || _args.Search == SearchIn.Body)
            {
                sb.Append(_args.Response.Content.ReadAsStringAsync().Result);
            }

            string pattern = $"(?<={Regex.Escape(_args.LB)}).*?(?={Regex.Escape(_args.RB)})";
            Regex  re      = new Regex(pattern);
            var    mc      = re.Match(sb.ToString());


            for (int i = 0; i < _args.SaveOffset; i++)
            {
                if (mc.Success)
                {
                    mc = mc.NextMatch();
                }
                else
                {
                    _args.Log.Error($"SaveOffset({_args.SaveOffset}) exceeds the found value length({i}) for parameter \"{_args.Name}\".");
                    return(false);
                }
            }
            if (mc.Success)
            {
                _args.Parameters[_args.Name] = mc.Value;
                _args.Log.Log($"save parameter \"{_args.Name} = {mc.Value}\"");
                return(true);
            }
            else
            {
                _args.Log.Error($"Not match found for parameter \"{_args.Name}\"");
                return(false);
            }
        }
Ejemplo n.º 2
0
        public static bool WebRegFind(ResponseDelegateArgs args)
        {
            var _args = args as WebRegFindArgs;

            StringBuilder sb = new StringBuilder();

            if (_args.Search == SearchIn.All || _args.Search == SearchIn.Headers)
            {
                sb.Append(_args.Response.Headers.ToString());
                sb.Append(_args.Response.Content.Headers.ToString());
            }
            if (_args.Search == SearchIn.All || _args.Search == SearchIn.Body)
            {
                sb.Append(_args.Response.Content.ReadAsStringAsync().Result);
            }

            if (sb.ToString().IndexOf(_args.Text) >= 0)
            {
                _args.Log.Success($"web_reg_find successful for \"Text={_args.Text}\"");
                return(true);
            }
            _args.Log.Error($"\"Text={_args.Text}\" not found for web_reg_find");
            return(false);
        }