【Win 10 应用开发】分析 URI 中的查询字符串
分析URI中的字符有K种方法(K >= 2),如果查询字符串中的参数比较简单,可以通过子字符串查找的方式来处理;如果查询字符串相对复杂,你可以使用正则表达式来匹配 key1=value1 , key2=value2等。
如果你想很轻松地完成查询参数分析,应当考虑使用现成的API,这不,在Windows.Foundation命名空间下面,你会看到一个名字很刺眼的类——WwwFormUrlDecoder。这个很是简单,调用构造函数创建实例时需要提供一个参数,就是URI中的查询字符串,而且必须是以 ? 开头。然后就可以慢慢玩了,它实现了可枚举接口,你可用foreach来检索所有参数,URI参数经过该类处理后,会把每一对参数变成一个WwwFormUrlDecoderEntry实例,其中,Name 属性就是参数的大名,Value 属性表示参数的值。
这么一耍,你是不是有些感叹,原来生活可以如此简单。
咱们来实战一下,请看看下面XAML布局。
<StackPanel Margin="15"> <TextBox Name="txtUriWithQry" Header="请输入带查询字符串的URI:" Text="http://www.ads-rubbish.net/index.sb?t=5&m=dog&d=100"/> <Button Margin="0,10,0,3" Content="分析" Click="OnClick"/> <TextBlock Name="tb"/> </StackPanel>
在TextBox中输入一个带查询参数的URI,然后点按钮,接着分析参数,最后在TextBlock中显示分析后的参数列表。
下面代码处理按钮单击事件。
private void OnClick(object sender, RoutedEventArgs e) { Uri u = new Uri(txtUriWithQry.Text); tb.Text = string.Empty; WwwFormUrlDecoder dcd = new WwwFormUrlDecoder(u.Query); foreach (WwwFormUrlDecoderEntry ent in dcd) { tb.Text += $"{ent.Name} = {ent.Value}\n"; } }
为什么要用Uri类来耍呢,因为它有个Query属性,直接可以获取到查询字符串,而且是带?号的。
最后就可以看效果了。
本文的示例实在太简单了,因此,老周严重拒绝提供示例代码下载。
===========================================================
有好几回没讲故事了,唉,最近确实没啥故事可讲,老周近来也没看到比较“另类”的事件。
哦,想起来了一事,提醒一下大家,最近天气潮湿,开电脑前要小心一点,比较容易烧坏东西,尤其是一些老式显示器,不过,貌似笔记本没多大影响。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战