我试图使用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 /隐藏的自动生成的字段等来明确地设置以阻止这种行为。 –