我已经尝试了所有的东西,并没有用cookie下载页面!
我成功获得了cookie
但是我没有成功将其设置为使用cookie进行下载
我正在使用WebClient ..
任何解决方案?
我的代码:
foreach (Cookie cook in response.Cookies)
{
string name =cook.Name;
string val = cook.Value;
if (i == 0) { coock = cook.Name + "=" + val; } else { coock = coock + "; " + cook.Name + "=" + val; }
i++;
}
WebClient client = new WebClient();
client.Headers.Add(HttpRequestHeader.Cookie, coock);
client.Headers.Add("Content-Type: application/x-www-form-urlencoded");
client.Headers.Add("User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5");
client.Headers.Add("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
client.Headers.Add("Accept-Encoding: identity");
client.Headers.Add("Accept-Language: en-US,en;q=0.8");
client.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3");
try
{
string respons2e = client.DownloadString("http://m.facebook.com");
}catch{}
//这不是重复我尝试了所有解决方案..
答案 0 :(得分:2)
您必须自己添加此属性:
class WebClientEx : WebClient
{
private CookieContainer _cookies;
private string _ref;
public WebClientEx()
{
_cookies = new CookieContainer();
}
public CookieContainer Cookies
{
get { return _cookies; }
set { _cookies = value; }
}
protected override WebRequest GetWebRequest(System.Uri address)
{
var webReq = base.GetWebRequest(address);
if (webReq is HttpWebRequest)
{
var req = (HttpWebRequest)webReq;
req.CookieContainer = _cookies;
if (_ref != null)
{
req.Referer = _ref;
}
}
_ref = address.ToString();
return webReq;
}
protected override void Dispose(bool disposing)
{
_cookies = null;
base.Dispose(disposing);
}
}
现在,您可以从CookieContainer
获取WebClientEx.Cookies
对象。