假设我想从 url 自动下载一个文件,该文件位于需要身份验证的网站内,我使用基于 Internet Explorer 的自动 WebBrowser 控件登录到该网站。但是,一旦我在那里并获取文件的链接,如果我尝试通过导航到它直接通过 IE6 下载它,将会出现“你要打开还是保存这个文件”模式对话框。如果我尝试使用 C# WebClient 类下载它,它没有成功,下载的只是一小段无意义的 javascript。事实上,出于好奇,我测试了 Gmail 网站内的 WebClient 方法试图下载附件,但它也没有工作(我知道从 Gmail 中我可以通过 POP3 界面抓取它们,这只是一个实验)。
好吧,所以这让我想知道这一切的潜在机制。首先,也许我以错误的方式使用 WebClient ?或者在这种情况下可能有一些其他标准的 C# 类用于下载文件?
如果不是,应用程序是否有可能欺骗浏览器的行为,以便服务器认为文件请求来自它,即使它实际上来自同一进程的另一部分?在这种情况下,浏览器到底在做什么,让它下载文件而 WebClient 不能这样做?