![](/img/trans.png)
[英]WebClient.DownloadFile - Invalid URI: The hostname could not be parsed
[英]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.