2009-05-21 14 views
0

Ich verwende die WebClient-Klasse, um Dateien von einer Website herunterzuladen, und habe ein paar Fragen.WebClient.DownloadFile 404 Fehler mit HTML-Zeichen in URI?

  1. Wenn die URIs haben HTML-Zeichen in dem URI-Pfad (zB http://foo.com/path1& path2.pdf) bekomme ich 404 (nicht gefunden) Fehler. Wie kann ich das verhindern? Ich dachte, HTML-Zeichen wären sicher?

  2. Wenn die URIs ein Verzeichnis darstellen (zB http://foo.com/path) bekomme ich 403 (verbotene) Fehler. Ich verstehe, warum dies auftritt, aber wie kann ich meinen URI testen, um zu sehen, ob es ein Verzeichnis ohne Indexseite darstellt.

Antwort

2
  1. HTML codierte Zeichen sind für URLs nicht sicher. Sie müssen diese URLs verschlüsseln. Wenn Ihre Daten html-codiert gespeichert sind, möchten Sie HttpUtility.HtmlDecode verwenden, um zu einer korrekt formatierten URL zu gelangen (zB foo.com/page?foo=1&bar=2. Wenn Sie Sonderzeichen haben, die in URLs gehen müssen, wie kaufmännische Und-Zeichen, die nicht Teil des Abfrageteils der URL sind , Sie werden sie zu URL kodieren wollen Verwenden HttpUtility.UrlEncode
  2. Sie können nicht
+0

@Randolpho -.. ich bin nicht sicher, warum Sie sagen, ich brauche sie zu kodieren, wenn die codierten Zeichen sind, was verursacht der Fehler zu beginnen mit? – eft

+0

@ eft: HTML-Codierung und URL-Codierung sind nicht das Gleiche, Sie wollen Ihre Zeichen für die URL url-codiert werden, jetzt sind sie HTML-entschlüsselt. –

+0

@ Frederik - vielen Dank für die Klarstellung – eft