首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 下载文件远程服务器返回异常: (403) 已禁止,求各位朋友帮忙!

2013-07-01 
C# 下载文件远程服务器返回错误: (403) 已禁止,求各位朋友帮忙!!!http://www.shutterstock.com 用浏览器下

C# 下载文件远程服务器返回错误: (403) 已禁止,求各位朋友帮忙!!!
http://www.shutterstock.com 用浏览器下载图片没有问题,但通过我的C# AP程序不行

我已经通过获取头部Cookie以及下次Get页面set cookie保持了登陆状态
保持登陆状态的关键代码

 cookieHeader = response.Headers["Set-cookie"];  //get the cookie
 webRequest.Headers.Add("Cookie", cookieHeader);

下载部分代码如下:

            //////////////////////////////////////////////////////////////////////////
            //photo page method 1-3 down load file

            string file_name = "";
            url = GetDownloadUrl(responseData);
            url_reference = GetDownloadUrlRe(url,responseData);

            file_name = GetFileNameViaURL(url);
            //DownloadFile(url, "f:\" + file_name, "a");


            webRequest = WebRequest.Create(url) as HttpWebRequest;
            webRequest.MediaType = "GET";            
            webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20100101 Firefox/6.0.1";            
            webRequest.Host = "download.shutterstock.com";
            webRequest.UseDefaultCredentials = true;
            webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            webRequest.KeepAlive = true;
            webRequest.Headers.Add("Accept-Encoding", "gzip, deflate");
            webRequest.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");            
            
            webRequest.Headers.Add("Cookie", cookieHeader);//session in cookie


            webRequest.Headers.Add("Pragma", "no-cache");

            response = (HttpWebResponse)webRequest.GetResponse();//will the 403 error




通过网络监控获取的两个不同的头部信息,我代码中已经尽量的模拟了浏览器的请求了。

浏览器的:
http://download.shutterstock.com/gatekeeper/W3siZSI6MTM3MjMyNjk3NywiYyI6Il9waG90b19zZXNzaW9uX2lkIiwiZGMiOiJpZGxfMTIwODA0MTgxIiwiayI6InBob3RvLzEyMDgwNDE4MS92ZWN0b3IuZXBzIiwibSI6IjEiLCJkIjoic2h1dHRlcnN0b2NrLW1lZGlhIn0sIiszUFppWVllN3dYYVRJSVc1VlVXMDc4RlJaSSJd/shutterstock_120804181.eps HTTP/1.1
Host: download.shutterstock.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: visitor_id=1259479000; visitor_id_version=1; psst=73:196,115:466,158:572,200:761,209:809,218:872,221:886,230:958,310:1081,322:1123,332:1160,371:1316,377:1334,389:1379,430:1486,433:1501,445:1534,448:1540; __utma=45497851.397993985.1368695244.1372234529.1372297959.37; __utmz=45497851.1370501396.26.2.utmcsr=bbs.csdn.net|utmccn=(referral)|utmcmd=referral|utmcct=/topics/390476920; exp=v2%2FMTAwMjk6MTAxMDUsMTAwMjM6MTAwNzMsMTAwMzM6MTAxMjcsMTAwNDU6MTAxNzM%3D; _photo_session_id=32db15b71c0d3eec3f90e0e32d9669cf; _video_session_id=; visit_exp=MjA5MTE0NDE2NC86LDEwMDQ1OjEwMTczLDEwMDIzOjEwMDcz; visit_id=2091144164; sst=212:815,380:1343; __utmb=45497851.6.10.1372297959; __utmc=45497851; idl_120804181=1
Connection: keep-alive

我AP的
GET http://download.shutterstock.com/gatekeeper/W3siZSI6MTM3MjM0MTk0NSwiYyI6Il9waG90b19zZXNzaW9uX2lkIiwiZGMiOiJpZGxfMTIwODA0MTgxIiwiayI6InBob3RvLzEyMDgwNDE4MS92ZWN0b3IuZXBzIiwibSI6IjEiLCJkIjoic2h1dHRlcnN0b2NrLW1lZGlhIn0sIm1CMW1zbW5OampFeVNRWTh0RXdFQVZFY092cyJd/shutterstock_120804181.eps HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20100101 Firefox/6.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-cn,en-us;q=0.5
Cookie: ssssidd=6e5751d5eaf3976a076b46e8d64c3980; path=/; expires=Sat, 27-Jul-2013 06:05:47 GMT,visitor_id=1367693476; domain=.shutterstock.com; path=/; expires=Tue, 27-Jun-2023 06:05:47 GMT,visitor_id_version=1; domain=.shutterstock.com; path=/; expires=Tue, 27-Jun-2023 06:05:47 GMT,visit_id=2091623910; domain=.shutterstock.com; path=/; expires=Thu, 27-Jun-2013 06:35:47 GMT,sst=212:815,380:1343; domain=.shutterstock.com; path=/; expires=Thu, 27-Jun-2013 06:35:47 GMT,psst=73:196,115:466,158:572,200:761,209:809,218:872,221:886,230:958,332:1160,377:1328,389:1382,430:1486,433:1501,445:1534,448:1540; domain=.shutterstock.com; path=/; expires=Wed, 25-Sep-2013 06:05:47 GMT


Pragma: no-cache
Host: download.shutterstock.com


我cookie部分没有红色字体的_photo_session_id,不知道是不是这个原因
C# 下载?httpwebrequest httpwebrequest 下载
[解决办法]
那应该就是_photo_session_id的问题了
[解决办法]
必须构造得一模一样才行。

热点排行