繁体   English   中英

WebClient.DownloadFile 对 URI 的要求究竟是什么?

[英]WebClient.DownloadFile requires what exactly for the URI?

我对代码很好,它适用于我的其他解决方案。 我有一个知识空白,因为我不明白什么是 URI。 这应该有效,但不起作用:

https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download

现在我在想这不是一个文件吗? 不过,将上述内容扔到浏览器会提供一个文件。 异常消息是“基础连接已关闭:接收时发生意外错误。”

        String address = "https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download";

.....

        using (WebClient Client = new WebClient())
        {
            try
            {
                Client.DownloadFile(address, destPath + filename);
            }
            catch (Exception ex)
            {
                Log.Line("Error: " + ex.Message);
                return 1;
            }
        }

URI: 此链接

您有一个完全有效的 URI。 目标服务器可能会以与您预期不同的方式响应请求。 例如,取决于您的网络客户端。 要调试此类问题,请使用curl

curl -v https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download

上面的命令显示服务器没有回复预期的 csv 文件。 这在您的代码中不是问题。 您可以尝试使用 curl -H 标志假装不同的用户代理或设置一些重定向选项,直到到达那里。

在您的特定情况下,标题Accept-Encoding: gzip似乎可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM