.NET中是否有可用的助手类来构建Url?
例如,如果用户输入字符串:
stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
我试着把它传递给HttpWebRequest:
WebRequest.CreateHttp(url);
Run Code Online (Sandbox Code Playgroud)
它将失败,因为它不是有效的URL(它没有前缀).
我想要的是能够解析用户输入的部分网址:
Uri uri = new Uri(url);
Run Code Online (Sandbox Code Playgroud)
然后修复缺失的部分:
if (uri.Port == 0)
uri.Port = 3333;
if (uri.Scheme == "")
uri.Scheme = "https";
Run Code Online (Sandbox Code Playgroud)
.NET是否有任何可用于解析和操作Uri的类?
用户输入的值(例如stackoverflow.com:3333)有效; 我只需要一个班级来分开它.我尝试使用这个UriBuilder类:
UriBuilder uriBuilder = new UriBuilder("stackoverflow.com:3333");
Run Code Online (Sandbox Code Playgroud)
不幸的是,UriBuilder类无法处理URI:
3333-1stackoverflow.com所以我需要一个能够理解的课程,host:port尤其是当课程不是特别http重要时,尤其如此.
控制台应用.
一些需要解析的URL示例:
server:8088 server:8088/func1server:8088/func1/SubFunc1http://serverhttp://server/func1http://server/func/SubFunc1http://server:8088http://server:8088/func1http://server:8088/func1/SubFunc1magnet://servermagnet://server/func1magnet://server/func/SubFunc1magnet://server:8088 …我的要求是解析Http Urls并相应地调用函数.在我当前的实现中,我使用嵌套的if-else语句,我认为这不是一种优化方式.你能建议其他一些有效的approch吗?
网址如下:
server/func1server/func1/SubFunc1server/func1/SubFunc2server/func2/SubFunc1server/func2/SubFunc2