由于HttpUtility在 WinRT 中不可用,我想知道是否有一种直接的方法来解析 HTTP 查询字符串?
WinRT中实际上是否存在与HttpUtility.ParseQueryString等效的内容?
由于HttpUtility在 WinRT 中不可用,我想知道是否有一种直接的方法来解析 HTTP 查询字符串?
WinRT中实际上是否存在与HttpUtility.ParseQueryString等效的内容?
而不是HttpUtility.ParseQueryString
你可以使用WwwFormUrlDecoder
.
这是我在这里抓到的一个例子
using System;
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
using Windows.Foundation;
[TestClass]
public class Tests
{
[TestMethod]
public void TestWwwFormUrlDecoder()
{
Uri uri = new Uri("http://example.com/?a=foo&b=bar&c=baz");
WwwFormUrlDecoder decoder = new WwwFormUrlDecoder(uri.Query);
// named parameters
Assert.AreEqual("foo", decoder.GetFirstValueByName("a"));
// named parameter that doesn't exist
Assert.ThrowsException<ArgumentException>(() => {
decoder.GetFirstValueByName("not_present");
});
// number of parameters
Assert.AreEqual(3, decoder.Count);
// ordered parameters
Assert.AreEqual("b", decoder[1].Name);
Assert.AreEqual("bar", decoder[1].Value);
// ordered parameter that doesn't exist
Assert.ThrowsException<ArgumentException>(() => {
IWwwFormUrlDecoderEntry notPresent = decoder[3];
});
}
}