一个代码片段,检测url是否正常,通过Uri 类的构造函数进行,这里需要注意的是,.net4 和.net4.5的报错不一样;.net4 创建非法的url对象后并不直接报错,访问具体位置才会报错;。net4.5会直接报错;
try
{
string target = "hahahaha"; // 异常的url
// string target = "https://www.baidu.com"; // 正常的url
Uri uri = new Uri(target); //.net4.5报错位置
Console.WriteLine(uri.AbsoluteUri); //.net4.0报错位置
}
catch (UriFormatException ex)
{
Console.WriteLine(ex.Message);
// 详细报错信息参考
// https://docs.microsoft.com/zh-cn/dotnet/api/system.uri.-ctor?view=netframework-4.5&f1url=%3FappId%3DDev15IDEF1%26l%3DZH-CN%26k%3Dk(System.Uri.%2523ctor);k(SolutionItemsProject);k(TargetFrameworkMoniker-.NETFramework,Version%253Dv4.5);k(DevLang-csharp)%26rd%3Dtrue
}
url 协议规范参考:https://tools.ietf.org/html/rfc1738