J'essaie de faire un simple coup d'écran de Wikipedia en utilisant le pack HTML Agility. J'ai copié le format d'un lien approprié qui fonctionne dans mon navigateur, https://en.wikipedia.org/wiki/Nanticoke%2c_Pennsylvania < - Fonctionne dans le navigateur Cependant, lorsque j'utilise ce code, j'obtiens l'exception de caractères de chemins illégaux de la classe WebClient.WebClient Wikipédia caractères illicites du chemin même après l'encodage de l'URL
Adresse originale: https://en.wikipedia.org/wiki/Nanticoke,_Pennsylvania
Mise à jour - téléchargement du site à une variable de chaîne avant d'appeler html.Load() ne jette pas l'exception. Je reçois des caractères de chemin illégaux sur html.Load()
var client = new WebClient();
var address = $"https://en.wikipedia.org/wiki/{HttpUtility.UrlEncode($"{name},_{state}")}";
HtmlAgilityPack.HtmlDocument html = new HtmlAgilityPack.HtmlDocument();
html.Load(client.DownloadString(address)); //Exception thrown here
Pouvez-vous éditer votre question pour montrer a) l'URL réelle générée et b) l'exception réelle que vous obtenez? – stuartd
Vous n'avez pas publié l'URL réelle après l'encodage. De plus, déplacez votre 'client.DownloadString' sur' html.Load' et attribuez-le à une variable chaîne de sorte que nous puissions déterminer s'il s'agit d'un problème avec l'URL, ou si la réponse de Wikipedia lève une exception dans HAP – ColinM
une url pas html brut. Utilisez LoadHtml pour charger html à partir d'une chaîne. –