我的要求是相應地解析Http Url和調用函數。在我目前的實現中,我使用嵌套的if-else語句,我認爲這不是一種優化的方式。你能否建議其他有效的方法?如何解析C#中的HTTP URL?
URL是這樣的:
server/func1
server/func1/SubFunc1
server/func1/SubFunc2
server/func2/SubFunc1
server/func2/SubFunc2
我的要求是相應地解析Http Url和調用函數。在我目前的實現中,我使用嵌套的if-else語句,我認爲這不是一種優化的方式。你能否建議其他有效的方法?如何解析C#中的HTTP URL?
URL是這樣的:
server/func1
server/func1/SubFunc1
server/func1/SubFunc2
server/func2/SubFunc1
server/func2/SubFunc2
我認爲你可以從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;
我組合在Suncat2000的答案用繩子拆分拆分得到的URL有趣的功能。我傳遞一個完整的URI包括HTTPS:從等另一頁的導航參數e.Parameter:
Uri playlistUri = (Uri)e.Parameter;
string youtubePlaylistUnParsed = playlistUri.Query;
char delimiterChar = '=';
string[] sections = youtubePlaylistUnParsed.Split(delimiterChar);
string YoutubePlaylist = sections[1];
這讓我的播放列表中PLs__等形式在谷歌API的使用。
這可能會作爲一個有點晚了答案,但我發現自己最近試圖解析一些網址和我一起用的Uri
和System.Web.HttpUtility
組合所看到here去了,我的網址都像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"];
注意到,在這兩種情況下,你會string
s內工作,並與段工作時是特別疲憊。
如果您只需要函數名稱,那麼如何拆分url並獲取最後一個標記呢? – SamGamgee
你能說清楚「解析」是什麼意思嗎?我假設你想提取一些特定的數據;但是什麼部分和目的呢? –
我有很多類型的網址。它也包含uris中的屬性,有用值。 – vijay053