我的要求是解析Http Urls并相应地调用函数.在我当前的实现中,我使用嵌套的if-else语句,我认为这不是一种优化方式.你能建议其他一些有效的approch吗?
网址如下:
server/func1server/func1/SubFunc1server/func1/SubFunc2server/func2/SubFunc1server/func2/SubFunc2Sun*_*000 39
我认为你可以从System.Uri类中获得很多用处.给它一个URI,你可以在许多安排中拉出碎片.
一些例子:
Uri myUri = new Uri("http://server:8080/func2/SubFunc2?query=somevalue");
// Get host part (host name or address and port). Returns "server:8080".
string hostpart = myUri.Authority;
// Get path and query string parts. Returns "/func2/SubFunc2?query=somevalue".
string pathpart = myUri.PathAndQuery;
// Get path components. Trailing separators. Returns { "/", "func2/", "sunFunc2" }.
string[] pathsegments = myUri.Segments;
// Get query string. Returns "?query=somevalue".
string querystring = myUri.Query;
Run Code Online (Sandbox Code Playgroud)
这可能是一个有点晚的答案,但我发现自己最近试图解析一些 URL,并且我继续使用 和 的组合,Uri如此处System.Web.HttpUtility所示,我的 URL 如下所示,这就是我所做的:http://one-domain.com/some/segments/{param1}?param2=x....
var uri = new Uri(myUrl);
string param1 = uri.Segments.Last();
var parameters = HttpUtility.ParseQueryString(uri.Query);
string param2 = parameters["param2"];
Run Code Online (Sandbox Code Playgroud)
请注意,在这两种情况下,您都将使用strings,并且在使用段时会特别疲倦。