2015-07-12 2 views
-2

Я пробовал все и не загружал страницу с cookie!Set Cookies To WebClient C#

я был успех получить печенье

, но я не успех, чтобы установить его в скачивании с печенья

я использую 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

Боюсь, я не понимаю, в чем проблема: – canton7

+0

i wanna загрузить «m.facebook.com» домашняя страница facebook с cookie! ', чтобы получать сообщения с домашней страницы' .. спасибо за повтор Я думал, что я получаю cookie, но когда я пытаюсь сейчас, я вижу, что cookie недействителен –

+0

Что бы вы ни пытались сделать, вероятно, лучший способ сделайте это с помощью API Facebook. – Yuck

ответ

0

Вы должны добавить это свойство самостоятельно:

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.