如何在C#中解析HTTP URL?
我的要求是解析Http URL并相应地调用函数。在我当前的实现中,我使用嵌套的if-else语句,我认为这不是一种优化的方式。你能推荐一些其他有效的方法吗 URL如下所示:如何在C#中解析HTTP URL?,c#,parsing,url,C#,Parsing,Url,我的要求是解析Http URL并相应地调用函数。在我当前的实现中,我使用嵌套的if-else语句,我认为这不是一种优化的方式。你能推荐一些其他有效的方法吗 URL如下所示: server/func1 server/func1/SubFunc1 server/func1/SubFunc2 server/func2/SubFunc1 server/func2/SubFunc2 我想你可以从课堂上得到很多好处。向它提供一个URI,您可以按照多种方式提取片段 一些例子: Uri myUri = new
server/func1
server/func1/SubFunc1
server/func1/SubFunc2
server/func2/SubFunc1
server/func2/SubFunc2
- 我想你可以从课堂上得到很多好处。向它提供一个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;
我将Suncat2000答案中的拆分与字符串拆分相结合,以了解URL的有趣特性。我从另一个页面传入一个完整的Uri,包括https:等,作为导航参数e。参数:
Uri playlistUri = (Uri)e.Parameter;
string youtubePlaylistUnParsed = playlistUri.Query;
char delimiterChar = '=';
string[] sections = youtubePlaylistUnParsed.Split(delimiterChar);
string YoutubePlaylist = sections[1];
这让我得到了PLs_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuhttp://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"];
请注意,在这两种情况下,您都将使用
string
s,并且在使用段时会特别疲劳。如果您只需要函数名,那么拆分url并仅获取最后一个标记如何?您能否更清楚地理解“解析”的含义?我假设有一些特定的数据要提取;但是什么部分和目的?我得到的url有很多种。它包含属性,URI中也包含有用的值。是这样的吗?你可以将url拆分为“/”并遍历每个标记。但我必须再次使用嵌套的if-else语句。。。