我試圖使用Windows控制檯應用程序從URL下載PDF。我使用下面的代碼:C#控制檯Webclient不返回數據,但瀏覽器確實
using (var webClient = new System.Net.WebClient())
{
webClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");
byte[] data = webClient.DownloadData(url);
System.IO.File.WriteAllBytes(@"D:\Files\hello.pdf", data);
}
如果我複製並粘貼到瀏覽器/郵遞員上面的代碼相同的URL,我得到的文件但是,當我嘗試在C#控制檯應用程序一樣的,我得到一些其他的HTML響應。我使用Fiddler攔截了請求/響應,唯一的區別是我可以看到當通過瀏覽器/郵遞員發起請求時,我看到一些額外的cookie被添加到請求中,這些cookie是特定於我們正在處理的應用程序的。我很困惑,瀏覽器/郵遞員如何添加特定於應用程序的cookie。
我試着清除所有的cookies,並從瀏覽器中再次嘗試,但是Fiddler在請求中顯示了cookies。關於發生了什麼的任何線索?
什麼是網址? –
經常使用cookies來進行某種類型的身份驗證...取決於您是否需要獲取它們(例如,通過請求頁面優先/僞造登錄)或從瀏覽器中竊取...一般來說站點未經過測試在有人試圖抓取它們時正常工作,並且經常通過檢查cookie/referrer /隱藏的自動生成的字段等來明確地設置以阻止這種行爲。 –