【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属性,直接可以获取到查询字符串,而且是带?号的。
最后就可以看效果了。

本文的示例实在太简单了,因此,老周严重拒绝提供示例代码下载。
===========================================================
有好几回没讲故事了,唉,最近确实没啥故事可讲,老周近来也没看到比较“另类”的事件。
哦,想起来了一事,提醒一下大家,最近天气潮湿,开电脑前要小心一点,比较容易烧坏东西,尤其是一些老式显示器,不过,貌似笔记本没多大影响。
【Win 10 应用开发】分析 URI 中的查询字符串的更多相关文章
- 【本周面试题】第1周 - 获取URL中的查询字符串参数、get和post的区别
[此系列优先解决自己经历的面试题] 2018.11.16 面试题一:你如何获取浏览器URL中查询字符串中的参数? 题目代码: 测试地址为 https://www.sogou.com/tx?query= ...
- C# 获取url中的查询字符串参数
/// <summary> /// 获取url中的查询字符串参数 /// </summary> public static NameValueCollection Extrac ...
- 【Win 10 应用开发】在代码中加载文本资源
记得前一次,老周给大伙,不,小伙伴们介绍了如何填写 .resw 文件,并且在 XAML 中使用 x:Uid 标记来加载.也顺便给大伙儿分析了运行时是如何解析 .resw 文件的. 本来说好了,后续老周 ...
- 【Win 10 应用开发】启动远程设备上的应用
这个功能必须在“红石-1”(build 14393)以上的系统版中才能使用,运行在一台设备上的应用,可以通过URI来启动另一台设备上的应用.激活远程应用需要以下前提: 系统必须是build 14393 ...
- 【Win 10 应用开发】导入.pfx证书
这个功能其实并不常用,一般开发较少涉及到证书,不过,简单了解一下还是有必要的. 先来说说制作测试证书的方法,这里老周讲两种方法,可以生成用于测试的.pfx文件. 产生证书,大家都知道有个makecer ...
- 【Win 10应用开发】Adaptive磁贴模板的XML文档结构
在若干天之前,老周给大家讲了Adaptive Toast通知的XML模板,所以相应地,今天老周给大家介绍一下Adaptive磁贴的新XML模板. 同样道理,你依旧可以使用8.1时候的磁贴模板,在win ...
- 【Win 10 应用开发】RTM版的UAP项目解剖
Windows 10 发布后,其实SDK也偷偷地在VS的自定义安装列表中出现了,今天开发人员中心也更新了下载.正式版的SDK在API结构上和以前预览的时候是一样的,只是版本变成10240罢了,所以大家 ...
- 【Win 10应用开发】认识一下UAP项目
Windows 10 SDK预览版需要10030以上版本号的Win 10预览版系统才能使用.之前我安装的9926的系统,然后安装VS 2015 CTP 6,再装Win 10 SDK,但是在新建项目后, ...
- 【Win 10应用开发】延迟共享
延迟共享是啥呢,这么说吧,就是在应用程序打开共享面板选择共享目标时,不会设置要共享的数据,而是等到共享目标请求数据时,才会发送数据,而且,延迟操作可以在后台进行. 这样说似乎过于抽象,最好的诠释方法, ...
随机推荐
- 【原】AFNetworking源码阅读(一)
[原]AFNetworking源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 AFNetworking版本:3.0.4 由于我平常并没有经常使用AFNetw ...
- Aaron Stannard谈Akka.NET 1.1
Akka.NET 1.1近日发布,带来新特性和性能提升.InfoQ采访了Akka.net维护者Aaron Stannard,了解更多有关Akka.Streams和Akka.Cluster的信息.Aar ...
- 用WebRequest +HtmlAgilityPack 从外网抓取数据到本地
相信大家对于WebRequest 并不陌生,我们在C#中发请求的方式,就是创建一个WebRequest .那么如果我们想发一个请求到外网,比如国内上不了的一些网站,那么该怎么做呢? 其实WebRequ ...
- 【详细教程】论android studio中如何申请百度地图新版Key中SHA1值
一.写在前面 现在越来越多的API接口要求都要求提供我们的项目SHA1值,开发版目前还要求不高,但是发布版是必定要求的.而目前定位在各大APP中也较为常见,当下主流的百度地图和高德地图都在申请的时候会 ...
- 企业做数据缓存是使用Memcached还是选Redis?
企业是使用Memcached还是选Redis? 在构建一款现代且由数据库驱动的Web应用程序并希望使其拥有更为出色的性能表现时,这个问题总会时不时出现.并给每一位开发人员带来困扰.在考虑对应用程序的性 ...
- BPM协同平台解决方案分享
一.需求分析 企业信息化的过程都是从单纯解决一个业务功能问题,到解决企业内部业务流程问题,再扩展到解决不同业务流程的关联互动问题, 核心是业务的集成和业务的协同,需要有一个统一的业务协同平台. 国内的 ...
- Mysql 学习之基础操作
一.表复制 1.复制表结构 将表hello的结构复制一份为表hello3 2.复制数据 a.如果两张表的结构一样且你要复制所有列的数据 mysql> insert into hello3 ...
- web安全浅析
就之前本人主持开发的金融产品所遇到的安全问题,设计部分请参见:http://www.cnblogs.com/shenliang123/p/3835072.html 这里就部分web安全防护就简单的交流 ...
- Topshelf 支持Mono 扩展Topshelf.Linux
使用Topshelf 5步创建Windows 服务 这篇文章大家可以了解到使用Topshelf可以很好的支持Windows服务的开发,但是它和Mono不兼容,Github上有一个扩展https://g ...
- 【css3笔记】---- 渐变的秘密
<CSS揭秘>这本书非常不错,充满了干货和惊喜.以下主要是关于使用渐变做出来的一些效果的笔记.请用最新的现代浏览器观看. 首先要回顾下一个css语句: linear-gradient([ ...