c # WebRequest с использованием файла cookie WebBrowser - PullRequest
9 голосов
/ 16 марта 2009

Я захожу на сайт, используя WebBrowser, затем я хочу использовать regex для получения некоторых данных, но webRequest не использовал веб-cookie cookie,

мой веб-браузер открыт, есть ли способ использовать cookie-файл WebBrowser в webRequest?

Ответы [ 3 ]

12 голосов
/ 11 мая 2010
    public CookieContainer GetCookieContainer()
    {
        CookieContainer container = new CookieContainer();

        foreach (string cookie in webBrowser1.Document.Cookie.Split(';'))
        {
            string name = cookie.Split('=')[0];
            string value = cookie.Substring(name.Length + 1);
            string path = "/";
            string domain = ".google.com"; //change to your domain name
            container.Add(new Cookie(name.Trim(), value.Trim(), path, domain));
        }

        return container;
    }

Это будет работать на большинстве сайтов, однако могут возникнуть проблемы с сайтами, которые используют субдомены.

7 голосов
/ 16 марта 2009

Вы можете использовать CookieContainer для веб-запроса.

 web_cookies = new CookieContainer();
 // Create a 'WebRequest' object with the specified url.                 
 HttpWebRequest myWebRequest = (HttpWebRequest)WebRequest.Create(url);

 myWebRequest.CookieContainer = web_cookies;

Надеюсь, это поможет.

Хорошо, вы хотите войти в систему. Это другая история. Для этого вы можете использовать NetworkCredential.

public string get_secure_webpage(string url, string username, string password)
    {
        WebRequest myWebRequest = WebRequest.Create(url);
        NetworkCredential networkCredential = new NetworkCredential(username, password);
        myWebRequest.Credentials = networkCredential;

...

0 голосов
/ 21 октября 2010

это серебряный свет? Если это так, то с Silverlight 3, если вы используете сетевой стек браузера, вы должны получить куки бесплатно. По умолчанию вы получаете стек браузера при создании HttpWebrequest с помощью метода WebRequest.Create (). обратите внимание, что если вы используете метод CreateHTTP, вы получите стек клиента, который по умолчанию не включает файлы cookie браузера (для их получения необходимо выполнить хитрость, как описано ранее)

см. http://msdn.microsoft.com/en-us/library/dd920295(VS.95).aspx о сетевых стеках в silverlight начиная с версии 3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...