【WinRT】获取 Uri 中的参数(QueryString)键值对

在控制台或者其它类型的项目中,可以添加 System.Web,使用以下代码来获取一个 Uri 中的参数

Uri uri = new Uri("http://www.cnblogs.com/h82258652/?gender=male&age=17");
NameValueCollection collection = HttpUtility.ParseQueryString(uri.Query);
for (int index = 0; index < collection.Count; index++)
{
    var name = collection.Keys[index];
    var value = collection[index];
}

那么就可以分别得到 gender 和 age。

PS:NameValueCollection 类有 Keys 和 AllKeys 两个比较容易令人糊涂的属性,stackoverflow 上有讲解:http://stackoverflow.com/questions/803484/what-is-the-difference-between-the-properties-keys-and-allkeys-on-a-namevaluecol

但是,上面的代码在 WinRT 中没法用了,因为 HttpUtility 这个类在 WinRT 中是不存在的。自己 Split 获取吧,也行,不过就是担心写错,还有 Url 解码那东西呢。能有轮子用的话,就没必要再去发明个轮子了,于是谷歌一下,终于找到了,于是就写篇 blog 记录下。

需要使用 WwwFormUrlDecoder 这个类。代码如下:

Uri uri = new Uri("http://www.cnblogs.com/h82258652/?gender=male&age=17");
WwwFormUrlDecoder decoder = new WwwFormUrlDecoder(uri.Query);
// 遍历。
foreach (var nameValue in decoder)
{
    var name = nameValue.Name;
    var value = nameValue.Value;
}
// 获取某一个的值。
var gender = decoder.GetFirstValueByName("gender");
时间: 2024-08-25 03:10:57

【WinRT】获取 Uri 中的参数(QueryString)键值对的相关文章

JS获取URL中参数值(QueryString)的4种方法分享

http://www.jb51.net/article/48942.htm JS获取URL中参数值(QueryString)的4种方法分享 作者: 字体:[增加 减小] 类型:转载 今天碰到要在一个页面获取另外一个页面url传过来的参数,一开始很本能的想到了用 split("?")这样一步步的分解出需要的参数.后来想了一下,肯定会有更加简单的方法的!所以在网上找到了几个很又简单实用的方法,mark下. 方法一:正则法 复制代码 代码如下: function getQueryString

如何获取url中的参数并传递给iframe中的报表

在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等.如何使网页中的报表能够获取到传递过来的参数呢?以下用报表软件FineReport简单介绍一些. 具体实现过程 将报表生成页面时,给网页添加onload事件,首先获取url中的参数,然后嫁接到iframe的src上,或者通过获得的参数拼接处完整的报表url赋给iframe的src. <html> <head> <title

JavaScript获取地址栏中的参数

1.获取地址栏中的参数 (1)若地址栏中的地址是: http://10.124.36.56:8080/CMOD/index.jsp?name=you&password=123456&type=student (2)获取地址栏中的最后一个参数type 2.实现的JS function getAddressURLParam(paramName) { //构造一个含有目标参数的正则表达式的对象 var reg = new RegExp("(^|&)" + paramN

C#获取URL中的参数

//获取URL中id参数  var ids = YK.Common.Util.WebKit.QueryParamValue("ids", "");         /// <summary>         /// 获取url参数的字符串类型值         /// </summary>         /// <param name="key">参数名</param>         /// &

vue中如何不通过路由直接获取url中的参数

前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接在url后面拼接?mid=100的方式传递参数更灵活,你不需要设置路由,只需要在url后拼接参数即可,但是这种方式就需要通过javascript获取并提取url中的参数,通过传统的方式直接在页面中获取是行不通的了,因为vue中是无法通过location.search()来获取url问号之后的内容的.

js获取url中的参数,并保证获取到的参数不乱码

  //网上比较经典的js获取url中的参数的方法  function getQueryString(name) {      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");      var r = window.location.search.substr(1).match(reg);      if ( r != null ){        

javaScript获取url中的参数

var urlTools = { //获取RUL参数值 getUrlParam: function(name) { /*?videoId=identification */ var params = decodeURI(window.location.search); /* 截取?号后面的部分 index.html?act=doctor,截取后的字符串就是?act=doctor */ var reg = new RegExp("(^|&)"+ name +"=([^&

获取URL地址栏中的参数并返回值

* 作用:获取URL地址栏中的参数并返回值 * @param 需要获取URL中的某个参数, String类型 */function GetLocationParam(param) { // 得到window.location的某个参数 var ss = ('' + window.location).split('?'); if(ss.length > 1) { var sss = ss[1].split('&'); for(var i = 0; i < sss.length; i++)

jQuery 获取url中的参数

//获取url中的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r != null) return unescape(r[2]); retur