![](/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.