如何检查字符串是否是有效的 HTTP URL?

问题描述:

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

如何检查字符串是否是用于输入验证的有效(不一定是活动的)HTTP URL?

How do I check whether a string is a valid (not necessarily active) HTTP URL for input validation purposes?

试试这个来验证 HTTP URLs(uriName 是你想要测试的 URI):

Try this to validate HTTP URLs (uriName is the URI you want to test):

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

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

Or, if you want to accept both HTTP and HTTPS URLs as valid (per J0e3gan's comment):

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