2009-05-21 8 views
0

J'utilise la classe WebClient pour télécharger des fichiers à partir d'un site Web et poser quelques questions.Erreurs WebClient.DownloadFile 404 avec des caractères HTML dans l'URI?

  1. Lorsque les URIs ont des caractères HTML dans les erreurs de chemin d'URI (par exemple http://foo.com/path1& de path2.pdf) Je reçois 404 (Introuvable). Comment puis-je empêcher cela? Je pensais que les caractères HTML étaient sûrs? Lorsque les URI représentent un répertoire (par exemple, http://foo.com/path), j'obtiens 403 erreurs (interdites). Je comprends pourquoi cela se produit mais comment puis-je tester mon URI pour voir s'il représente un répertoire sans page d'index.

Répondre

2
  1. caractères codés HTML ne sont pas sûrs pour les URL. Vous devez les encoder en URL. Si vos données sont stockées au format html, vous devez utiliser HttpUtility.HtmlDecode pour obtenir une URL correctement formatée (par exemple, foo.com/page?foo=1&bar=2.) Si vous avez des caractères spéciaux à insérer dans des URL, par exemple des esperluettes qui ne font pas partie de la partie de requête de l'URL , vous aurez envie de les encoder Utilisez HttpUtility.UrlEncode
  2. vous ne pouvez pas
+0

@Randolpho -.. Je ne sais pas pourquoi vous dites que je dois les encoder lorsque les caractères codés sont ce qui cause – eft

+0

@ eft: l'encodage html et l'encodage url ne sont pas la même chose, vous voulez que vos caractères soient codés en url pour l'url, maintenant ils sont décodés en html –

+0

@Frederik - merci pour la clarification – eft

Questions connexes