标签:
UriTemplates 用于处理格式化Uri模板
PM> Install-Package Tavis.UriTemplates
设置Uri Path Segment
[Fact] public void UpdatePathParameter() { var url = new UriTemplate("http://example.org/{tenant}/customers") .AddParameter("tenant", "acmé") .Resolve(); Assert.Equal("http://example.org/acm%C3%A9/customers", url); }
设置Querystring
[Fact] public void ShouldResolveUriTemplateWithNonStringParameter() { var url = new UriTemplate("http://example.org/location{?lat,lng}") .AddParameters(new { lat = 31.464, lng = 74.386 }) .Resolve(); Assert.Equal("http://example.org/location?lat=31.464&lng=74.386", url); }
如果参数没有被设置url会删除这个参数
[Fact] public void SomeParametersFromAnObject() { var url = new UriTemplate("http://example.org{/environment}{/version}/customers{?active,country}") .AddParameters(new { version = "v2", active = "true" }) .Resolve(); Assert.Equal("http://example.org/v2/customers?active=true", url); }
可以传递一个List作为参数
[Fact] public void ApplyParametersObjectWithAListofInts() { var url = new UriTemplate("http://example.org/customers{?ids,order}") .AddParameters(new { order = "up", ids = new[] {21, 75, 21} }) .Resolve(); Assert.Equal("http://example.org/customers?ids=21,75,21&order=up", url); }
添加一个字典作为参数
[Fact] public void ApplyDictionaryToQueryParameters() { var url = new UriTemplate("http://example.org/foo{?coords*}") .AddParameter("coords", new Dictionary<string, string> { {"x", "1"}, {"y", "2"}, }) .Resolve(); Assert.Equal("http://example.org/foo?x=1&y=2", url); }
包介绍 - UriTemplates (用于处理格式化Uri模板)
标签:
原文地址:http://www.cnblogs.com/irocker/p/4308102.html