1 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
這是由錯(cuò)誤的服務(wù)器實(shí)現(xiàn)引起的。如果您使用 Fiddler,您將看到服務(wù)器將 HTTPS 和 HTTP 連接重定向到同一個(gè)HTTP url,并添加了一個(gè)security=true
cookie。
通過 HTTP 調(diào)用特別有趣:
第一個(gè) HTTP 重定向到 HTTPS URL
HTTPS 使用
security=true
cookie重定向回原始 HTTP如果 cookie 不存在,則循環(huán)再次開始
這意味著 :
沒有安全感。任何東西都可以攔截該調(diào)用并更改或替換文件的內(nèi)容。希望您不要嘗試通過 WiFi 下載此文件!
除非您存儲(chǔ) cookie 或自行添加,否則服務(wù)器將導(dǎo)致無限重定向循環(huán)。
WebClient
無法存儲(chǔ) cookie。這是在下載頁面和文件時(shí)創(chuàng)建的一個(gè)過時(shí)的類。它的所有功能以及更多功能都由 HttpClient 類提供。
不過,在這種情況下,您可以自己將 cookie 添加為標(biāo)頭并避免重定向,并且仍然通過 HTTPS 下載文件
WebClient
是一個(gè)過時(shí)的類。它是為簡(jiǎn)單的文件和頁面請(qǐng)求而創(chuàng)建的
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);
}
這將導(dǎo)致一次調(diào)用并通過 HTTP 下載文件
- 1 回答
- 0 關(guān)注
- 437 瀏覽
添加回答
舉報(bào)