¿Cómo comprobar si una cadena es una URL HTTP válida?
Existen los métodos Uri.IsWellFormedUriString
y Uri.TryCreate
, pero parecen regresar true
para rutas de archivos, etc.
¿Cómo verifico si una cadena es una URL HTTP válida (no necesariamente activa) para fines de validación de entrada?
Aceptado
Pruebe esto para validar las URL HTTP ( uriName
es la URI que desea probar):
Uri uriResult;
bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult)
&& uriResult.Scheme == Uri.UriSchemeHttp;
O, si desea aceptar las URL HTTP y HTTPS como válidas (según el comentario de J0e3gan):
Uri uriResult;
bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult)
&& (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);
Este método funciona bien tanto en http como en https. Solo una linea :)
if (Uri.IsWellFormedUriString("https://www.google.com", UriKind.Absolute))
MSDN: IsWellFormedUriString