- 从Server端得到一个URL, 将其直接复制到浏览器中可正常下载文件,但是在C#中直接用WebClient下载该文件则得不到该文件,而是一页html。 原来原始的URL指向的是这一页html而不是客户端想要下载的文件,浏览器会帮助完成跳转,但是C# code不行。
- 解决方法是用C# code 解析这个html,找出关键字拼凑出新的URL,再用Webclient下载
- 使用维系Cookie的WebClient去下载这个文件
public class CookiesAwareWebClient : WebClient { public CookieContainer CookieContainer { get; private set; } public CookiesAwareWebClient() { CookieContainer = new CookieContainer(); } protected override WebRequest GetWebRequest(Uri address) { var request = base.GetWebRequest(address); ((HttpWebRequest)request).CookieContainer = CookieContainer; return request; } }