用WebClient下载文件时遇到的问题

  • 从Server端得到一个URL, 将其直接复制到浏览器中可正常下载文件,但是在C#中直接用WebClient下载该文件则得不到该文件,而是一页html。 原来原始的URL指向的是这一页html而不是客户端想要下载的文件,浏览器会帮助完成跳转,但是C# code不行。
  1. 解决方法是用C# code 解析这个html,找出关键字拼凑出新的URL,再用Webclient下载
  2. 使用维系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;
            }
        }

     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值