在C#中清除URI的任何方法?

时间:2013-01-03 12:55:45

标签: c# parsing url rtsp

程序中需要以下类似的URI:

rtsp://127.0.0.1:554/live.sdp/
rtsp://127.0.0.1:554/live.sdp
rtsp://127.0.0.1:554
rtsp://127.0.0.1:554/
rtsp://127.0.0.1:554//live.sdp

最后,我想只有一个干净的方式:

rtsp://127.0.0.1:554/live.sdp

其中scheme(rtsp://),ip(127.0.0.1),port(554)和path(live.sdp)单独提交。所以我必须确保路径不仅包含斜杠(/),不以斜杠(/live.sdp)开头,不以斜杠结束(live.sdp) /)并且URL不以斜杠结尾(rtsp://127.0.0.1:554 /),因此我可以在URL和路径之间添加斜杠,而不必担心会出错。

任何简单的方法来实现这一目标?

3 个答案:

答案 0 :(得分:4)

使用UriBuilder类来解析和构造URI。没有必要重新发明轮子。

答案 1 :(得分:1)

使用string split and format;

尝试此操作
string s1 = ip + ":" + port + "/" + path;
string[] arr = s1.Split(new string[] { "/" }, 
                        StringSplitOptions.RemoveEmptyEntries);

string url = scheme + string.Format("{0}/{1}", arr)

答案 2 :(得分:0)

尝试这样的事情

var uri = new UriBuilder(String.Format("{0}://{1}:{2}/{3}",protocol,host,port,path)).Uri;