【问题标题】:WebClient.DownloadFile 404 errors with HTML characters in URI?URI 中带有 HTML 字符的 WebClient.DownloadFile 404 错误?
【发布时间】:2009-05-22 01:22:35
【问题描述】:

我正在使用 WebClient 类从网站下载文件并且有几个问题。

  1. 当 URI 在 URI 路径中包含 HTML 字符时(例如 http://foo.com/path1&path2.pdf),我会收到 404(未找到)错误。我怎样才能防止这种情况?我认为 HTML 字符是安全的?

  2. 当 URI 表示一个目录(例如 http://foo.com/path)时,我会收到 403(禁止)错误。我明白为什么会发生这种情况,但是我如何测试我的 URI 以查看它是否代表没有索引页面的目录。

【问题讨论】:

    标签: c#


    【解决方案1】:
    1. HTML 编码的字符对于 URL 是不安全的。您需要对它们进行 URL 编码。如果您的数据以 html 编码存储,您将需要使用 HttpUtility.HtmlDecode 来获取格式正确的 URL(即 foo.com/page?foo=1&bar=2。如果您有特殊字符必须进入 URL,例如不属于查询的 & 符号URL 的一部分,你需要对它们进行 URL 编码。使用HttpUtility.UrlEncode
    2. 你不能。

    【讨论】:

    • @Randolpho - 我不知道你为什么说当编码字符是导致错误开始的原因时我需要对它们进行编码?
    • @eft:html编码和url编码不是一回事;你希望你的字符被 url 编码为 url,现在它们被 html 解码。
    猜你喜欢
    • 2013-06-09
    • 1970-01-01
    • 2013-03-16
    • 2019-01-26
    • 2013-06-03
    • 2014-04-23
    • 2020-11-15
    • 2020-03-08
    • 1970-01-01
    相关资源
    最近更新 更多