我对代码很满意,它对我的其他解决方案非常有用。我有一个知识鸿沟,因为我不了解什么是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: this link
答案 0 :(得分:1)
您有一个完全有效的URI。目标服务器可能以与您期望的方式不同的方式响应请求。例如,取决于您的Web客户端。要调试此类问题,请使用curl
。
curl -v https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download
以上命令显示服务器未使用预期的csv文件进行答复。这不是您的代码中的问题。您可以尝试使用curl -H标志假装其他用户代理,或者设置一些重定向选项,直到到达为止。
在您的特定情况下,标题Accept-Encoding: gzip
似乎可以解决问题。