C# 如何解析获取Url参数值
今天遇到一个需求,需要处理通过接口传过来的一个参数,参数内容为一个拼接好的url地址,且该地址还会携带了一些额外的参数,包括但不限于数字,字符串,json串。样例如下:
现在的问题就是,我需要将url参数中的data值的json中的id修改为url参数中id的值,然后再拼接成完整的url去获取数据。简单来说就是将url进行如下改变,现在问题的重点就在于如何根据url获取对应的参数值了。
url编码
这里插一句,在将url作为参数进行请求的时候,需要注意一些特殊字符(比如 ? "" / 等)对请求的影响,特别是发送get请求的时候。可以在发送请求前,先对url进行编码处理。
获取url参数
仔细思考了下,解析url获取参数的也无非通过分割关键字符来实现。区别就是分割字符的方式是通过正则匹配或者遍历字符罢了。下面就介绍框架带的方法,然后通过总结一些规律,最后自己实现一个方法。
我知道肯定有很多朋友经常使用httputility
类中的urlencode/urldecode
方法,其实该类还有一个parsequerystring
方法,用来解析url参数。该方法需要传入url参数部分字符串,然后返回一个namevaluecollection
对象(以key/value的形式记录了所有参数)。
该方法有几个要注意的点
- uri.query是?开头的,但是在转为键值对以后被自动过滤掉了,且只会过滤一个?字符
- 参数内容会自动使用utf-8解码
- 对于传递的数组参数(?ids=1&ids=2),会通过,
- 在参数字符中通过&划分后,只会把第一个=前的字符串作为key
基于上述一些要求就可以自己写一个解析参数的方式了。
总结
总体来说这只是一个小小的功能点,往往框架本身就帮我们封装好了解析url获取参数的方法,但是自己去实现的时候,可能就会有这样那样的情况没有考虑到。最后如果有遇到相似需求的朋友,我建议还是用httputility.parsequerystring()
吧~~~
以上就是c# 如何解析获取url参数值的详细内容,更多关于c# 解析获取url参数值的资料请关注其它相关文章!
上一篇: vue 实现一个简单的全局调用弹窗案例