Uri.IsWellFormedUriStringUri.TryCreate方法,但是它们似乎返回true作为文件路径,等等.

出于输入验证的目的,如何判断字符串是否为有效的(不一定是活动的)HTTP URL?

推荐答案

try 此操作以验证HTTP URL(uriName是您要测试的URI):

Uri uriResult;
bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult) 
    && uriResult.Scheme == Uri.UriSchemeHttp;

或者,如果您想同时接受HTTP和HTTPS URL作为有效URL(根据J0e3gan的 comments ):

Uri uriResult;
bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult) 
    && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);

.net相关问答推荐

获取Ef-Core集合的DeleteBehavior

WinForm Task.Wait :为什么它会阻塞 UI?

Visual Studio 2022 中的目标操作系统和目标运行时有什么区别?

EGC / 文本元素上的 .NET String.Split

双精度的 C++ 和 C# 十六进制值之间的差异

如何创建 LINQ to SQL 事务?

Owin Twitter登录-根据验证程序远程证书无效

代理、包装器或外观类之间有什么区别

在 web api 控制器(.net 核心)中使用 async/await 或任务

如何摆脱 VS2008 中的目标程序集不包含服务类型错误消息?

在 Moq 中模拟泛型方法而不指定 T

简单委托(委托)与多播委托

如何创建只读依赖属性?

自定义属性的构造函数何时运行?

覆盖 ASP.NET MVC 中的授权属性

Microsoft.Bcl.Build NuGet 包有什么作用?

例外:不支持 URI 格式

如何在 C# 中处理 XML

在 try/catch/finally 中等待的一个很好的解决方案?

嵌套捕获组如何在正则表达式中编号?