1 回答

TA貢獻1785條經驗 獲得超8個贊
這是由錯誤的服務器實現引起的。如果您使用 Fiddler,您將看到服務器將 HTTPS 和 HTTP 連接重定向到同一個HTTP url,并添加了一個security=true
cookie。
通過 HTTP 調用特別有趣:
第一個 HTTP 重定向到 HTTPS URL
HTTPS 使用
security=true
cookie重定向回原始 HTTP如果 cookie 不存在,則循環再次開始
這意味著 :
沒有安全感。任何東西都可以攔截該調用并更改或替換文件的內容。希望您不要嘗試通過 WiFi 下載此文件!
除非您存儲 cookie 或自行添加,否則服務器將導致無限重定向循環。
WebClient
無法存儲 cookie。這是在下載頁面和文件時創建的一個過時的類。它的所有功能以及更多功能都由 HttpClient 類提供。
不過,在這種情況下,您可以自己將 cookie 添加為標頭并避免重定向,并且仍然通過 HTTPS 下載文件
WebClient
是一個過時的類。它是為簡單的文件和頁面請求而創建的
var url_from = "https://www1.caixa.gov.br/listaweb/Lista_imoveis_RJ.zip";
using (var client = new System.Net.WebClient())
{
client.Headers.Add(System.Net.HttpRequestHeader.Cookie, "security=true");
client.DownloadFile(url_from, _to);
}
這將導致一次調用并通過 HTTP 下載文件
- 1 回答
- 0 關注
- 438 瀏覽
添加回答
舉報