C#类中的属性转换为要发送http的参数

本文介绍如何将C#类的属性转换为HTTP请求参数,通过封装类和筛选参数,实现参数加密及剔除不必要的字段。这种方法提高了参数处理的灵活性,避免了直接拼接字符串和硬编码筛选的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先将标题翻译一下:把要发送的参数,封装成了一个类,参数为类的属性,但还是要对参数进行加密,或者筛选掉一些不要的参数,最后把参数重组成带&、=的字符串(参数1=value1&参数2=value2...)。这样做是为了能更好的处理参数,这是一个通用个方法,而不必用字符串相加的办法来组成参数字符串,也省去了筛选某些参数是用写死的办法来做。

 <span style="white-space:pre">	</span>private static Dictionary<string, string> FilterPara(SortedDictionary<string, string> dicArrayPre, params string[] paras)
        {
            Dictionary<string, string> dict = new Dictionary<string, string>();
            foreach (KeyValuePair<string, string> temp in dicArrayPre)
                if (!paras.Contains(temp.Key) && !string.IsNullOrEmpty(temp.Value))
                    dict.Add(temp.Key, temp.Value);
            return dict;
        }
        private static SortedDictionary<string, string> GetResultDictionary(ChangjiePayOutModel model)
        {
            SortedDictionary<string, string> sArray = new SortedDictionary<string, string>();
            // 把实体类中的属性名称转换成List<string>
            List<string> paramList = new List<string>();
            var modelDict = model.GetType().GetProperties().ToDictionary(a => a.Name.ToLower());
            foreach (var dkey in modelDict)
                paramList.Add(dkey.Key);

            foreach (var p in paramList)
            {
                System.Reflection.PropertyInfo pi = null;
                if (modelDict.TryGetValue(p, out pi))
                {
                    object obj = pi.GetValue(model, null);
                    if (pi != null && obj != null)
                        sArray.Add(p, obj.ToString());
                }
            }
            return sArray;
        }
<span style="white-space:pre">	</span>private static string CreateLinkString(Dictionary<string, string> dicArray)
        {
            StringBuilder prestr = new StringBuilder();
            foreach (KeyValuePair<string, string> temp in dicArray)
                prestr.Append(temp.Key + "=" + temp.Value + "&");
            //去掉最後一個&字符
            int nLen = prestr.Length;
            prestr.Remove(nLen - 1, 1);
            return prestr.ToString();
        }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值