亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C# System.Net.WebException: '嘗試了太多自動重定向。'

C# System.Net.WebException: '嘗試了太多自動重定向。'

C#
大話西游666 2021-11-07 19:35:44
我想使用 webclient 下載一個 68kb 的 zip 文件,但出現錯誤:C# System.Net.WebException:“嘗試了太多自動重定向?!辈灰屛业拇a在下面工作并下載 zip 文件。 我如何編輯以更好地解釋?我的代碼:var url_from = "http://www1.caixa.gov.br/listaweb/Lista_imoveis_RJ.zip";            var _to = @"F:\folder\file.zip";            using (var client = new WebClient())            {                client.DownloadFile(url_from, _to);            }我也嘗試過異步方式,但它生成了空的 zip 文件。
查看完整描述

1 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

這是由錯誤的服務器實現引起的。如果您使用 Fiddler,您將看到服務器將 HTTPS 和 HTTP 連接重定向到同一個HTTP url,并添加了一個security=truecookie。

通過 HTTP 調用特別有趣:

  1. 第一個 HTTP 重定向到 HTTPS URL

  2. HTTPS 使用security=truecookie重定向回原始 HTTP

  3. 如果 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 下載文件


查看完整回答
反對 回復 2021-11-07
  • 1 回答
  • 0 關注
  • 438 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號