WinRT中如何快速获取Uri地址中的QueryString键值对信息
2015-07-08 22:31
423 查看
在WinRT中,往往涉及到获取网络资源或者截取网址信息的情形,因此跟Uri打交道的情况就比较多了。而一般情况
下需要快速准确地获取网址资源中某些特定的QueryString信息,那么选择工具是尤其重要的了。
而在WinRT中,利用WwwFormUrlDecoder类就可以完美解决问题。直接贴上代码说明一切:
XAML:
.CS:
当然就不同的语言环境,微软有不同的封装类来帮助程序员。在Console等应用中,可以使用NameValueCollection
类来获取。
Uri uri = new Uri("http://blog.csdn.net/u010792238?viewmode=contents");
NameValueCollection nvc= HttpUtility.ParseQueryString(uri.Query);
for (int index = 0; index < nvc.Count; index++)
{
var name = nvc.Keys[index]; //键
var value = nvc[index]; //值
}
推荐链接:【WinRT】获取 Uri 中的参数(QueryString)键值对
下需要快速准确地获取网址资源中某些特定的QueryString信息,那么选择工具是尤其重要的了。
而在WinRT中,利用WwwFormUrlDecoder类就可以完美解决问题。直接贴上代码说明一切:
XAML:
<Page x:Class="GetUriQueryString.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:GetUriQueryString" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> <TextBlock Text="测试Uri:" FontSize="25"/> <TextBlock Text="http://blog.csdn.net/u010792238?viewmode=contents" FontSize="20" TextWrapping="WrapWholeWords"></TextBlock> <Button x:Name="getUriQueryString" Content="获取" Click="getUriQueryString_Click"/> <TextBlock Text="结果:" FontSize="25"/> <TextBlock x:Name="result" FontSize="30"/> </StackPanel> </Grid> </Page>
.CS:
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; // “空白页”项模板在 http://go.microsoft.com/fwlink/?LinkId=391641 上有介绍 namespace GetUriQueryString { /// <summary> /// 可用于自身或导航至 Frame 内部的空白页。 /// </summary> public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required; } /// <summary> /// 在此页将要在 Frame 中显示时进行调用。 /// </summary> /// <param name="e">描述如何访问此页的事件数据。 /// 此参数通常用于配置页。</param> protected override void OnNavigatedTo(NavigationEventArgs e) { // TODO: 准备此处显示的页面。 // TODO: 如果您的应用程序包含多个页面,请确保 // 通过注册以下事件来处理硬件“后退”按钮: // Windows.Phone.UI.Input.HardwareButtons.BackPressed 事件。 // 如果使用由某些模板提供的 NavigationHelper, // 则系统会为您处理该事件。 } private void getUriQueryString_Click(object sender, RoutedEventArgs e) { //可以将要获取的信息粗略的看成键值对,一一对应即可。比如viewmode对应的是contents Uri uri = new Uri("http://blog.csdn.net/u010792238?viewmode=contents"); WwwFormUrlDecoder decoder = new WwwFormUrlDecoder(uri.Query); //获取viewmode键对应的值 var viewmode = decoder.GetFirstValueByName("viewmode"); result.Text = viewmode; //循环获取键值 foreach(var keyValue in decoder) { //键 var key = keyValue.Name; //值 var value = keyValue.Value; } } } }
当然就不同的语言环境,微软有不同的封装类来帮助程序员。在Console等应用中,可以使用NameValueCollection
类来获取。
Uri uri = new Uri("http://blog.csdn.net/u010792238?viewmode=contents");
NameValueCollection nvc= HttpUtility.ParseQueryString(uri.Query);
for (int index = 0; index < nvc.Count; index++)
{
var name = nvc.Keys[index]; //键
var value = nvc[index]; //值
}
推荐链接:【WinRT】获取 Uri 中的参数(QueryString)键值对
相关文章推荐
- UI的Title
- Permutation Sequence
- Gym 100548A Built with Qinghuai and Ari Factor (Asia Xian)
- 为什么无论你怎么设置自定义的外层div的高度,easyui的动态添加的tab的高度还是不变高
- UINavigationController
- UIScrollViewDelegate协议方法概述
- Longest Consecutive Sequence
- [NHibernate] Guid 作主键速度超慢的背后
- Storyboard里面的几种Segue区别和视图的切换
- 22个值得收藏的android开源代码-UI篇
- UISearchBar控件
- Android Studio 导入项目后不允许RUN 可修改buildToolsVersion
- IOS--UI--LessonTarget/Action /Delegate
- [UI] 精美UI界面欣赏[11]
- 四、openCV学习笔记(High-level GUI and Media I/O)
- UI_页面传值问题
- [LeetCode] Implement Queue using Stacks
- UI_UINavigationController
- UGUI Screen Space-Camera 模式 中 Animation 出现的Bug
- UIScrollView/滚动视图&&UIPageControl/指示行点