簡體   English   中英

從Winform C#在瀏覽器上獲取Cookie

[英]get cookies on a browser from winform c#

我正在構建一個應用程序,該應用程序在用戶登錄到我的網站后,該應用程序會轉到一個鏈接以獲取其用戶名,這樣我就可以在該應用程序上識別出他。

現在,如果我作為用戶從瀏覽器登錄,然后將類似的內容粘貼到該瀏覽器上,我將獲得一個包含我的用戶名的頁面,但是如果我從代碼中執行了一個Web請求,我將獲得一個空頁面。

我的問題是如何以瀏覽器打開URL或如何在certin瀏覽器上獲取cookie的值

我試過了

string s= GetHtmlPage("http://www.somedomain.com/account/show_cookies.php","Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)");

 static string GetHtmlPage(string strURL,string browser)
        {
            String strResult;
            System.Net.WebResponse objResponse;

            System.Net.WebRequest objRequest = System.Net.HttpWebRequest.Create(strURL);
            ((System.Net.HttpWebRequest)objRequest).UserAgent =browser;
            objResponse = objRequest.GetResponse();
            using (System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream()))
            {
                strResult = sr.ReadToEnd();
                sr.Close();
            }
            return strResult;
        }

但這還會返回空白頁。

您需要使用HttpClientCookieContainer

CookieContainer cookies = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler();
handler.CookieContainer = cookies;

HttpClient client = new HttpClient(handler);
HttpResponseMessage response = client.GetAsync("http://google.com").Result;

Uri uri = new Uri("http://google.com");
IEnumerable<Cookie> responseCookies = cookies.GetCookies(uri).Cast<Cookie>();
foreach (Cookie cookie in responseCookies)
     Console.WriteLine(cookie.Name + ": " + cookie.Value);

Console.ReadLine();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM