WebClient类的使用中遇到的几个问题
1、由于要做公司网站的图片和Flash进行统计,这里使用了WebClient类,
把文件直接下载到本地进行统计,统计过程中发现某一域名下的图片总是下
载不了,后来,才知道是这个域名下的图片作了验证,处理方法时,用WebClient
向服务器发送请求时,要先设置实例的头信息,如:
webclient.Headers.Add("Referer", "域名");
2、还遇到一个问题是,某一页面列表存在分页,使用WebClient下载该页面
时,第一页没问题,但是其它页面都取不到源码,分析之后发现是这样子的,当
访问第一页时,服务器会返回一个Cookies值,打开第二页时要向服务器提交访问
第一页时返回的Cookies,才能打开页面。
处理方法:打开第一页时:
byte[] buff=webclient.DownloadData(url);
string cookie=webclient.ResponseHeaders.Get("Set-Cookie");
其中cookie就是取得的Cookies值
向第二页发送请求时:
webclient.Headers.Add("Cookie", cookie);
这样就能取得第二页的源码。
3、当URL中存在中文参数时需对中文进行编码(Server.UrlEncode())