C #, Existe-t-il un meilleur moyen de vérifier la mise en forme d'URL que IsWellFormedUriString?
Est-il mieux/plus exactes, plus stricte de la méthode/de façon de savoir si une URL est correctement formaté?
À l'aide de:
bool IsGoodUrl = Uri.IsWellFormedUriString(url, UriKind.Absolute);
N'attrape pas tout. Si j'type htttp://www.google.com
et exécuter ce filtre, il passe. Puis-je obtenir un NotSupportedException
plus tard lors de l'appel de WebRequest.Create
.
Cette mauvaise url sera aussi passé le code suivant (qui est le seul autre filtre que j'ai pu trouver):
Uri nUrl = null;
if (Uri.TryCreate(url, UriKind.Absolute, out nUrl))
{
url = nUrl.ToString();
}
source d'informationauteur PiZzL3
Vous devez vous connecter pour publier un commentaire.
La raison
Uri.IsWellFormedUriString("htttp://www.google.com", UriKind.Absolute)
renvoie la valeur true est parce qu'il est dans une forme qui pourrait être une Uri valide. URI et URL ne sont pas les mêmes.Voir: Quelle est la différence entre une url et une adresse URL?
Dans votre cas, je voudrais vérifier que
new Uri("htttp://www.google.com").Scheme
était égale àhttp
ouhttps
.Techniquement,
htttp://www.google.com
est correctement formaté URL, selon la URL spécification. LeNotSupportedException
a été levée, carhtttp
n'est pas un régime enregistré. Si c'était un mal formaté URL, vous avez obtenu unUriFormatException
. Si vous venez de soins sur HTTP(S) Url, il suffit de vérifier le système.@Greg solution est correcte. Vous pouvez toutefois vous en acier à l'aide d'URI et de valider tous les protocoles (schéma) qui vous voulez comme valide.
Ce Code fonctionne très bien pour moi pour vérifier un
Textbox
la validité de l'URL format