从httpwebrequest获取cookie
我正在尝试使用此代码从网站获取所有Cookie
CookieContainer cookieJar = new CookieContainer(); var request = (HttpWebRequest)HttpWebRequest.Create("http://www.foetex.dk/ugenstilbud/Pages/Zmags.aspx"); request.CookieContainer = cookieJar; var response = request.GetResponse(); foreach (Cookie c in cookieJar.GetCookies(request.RequestUri)) { Console.WriteLine("Cookie['" + c.Name + "']: " + c.Value); } Console.ReadLine();
我唯一想要的是用console.writeline显示,但我没有得到它们中的一个。
以下示例使用HttpCookie类及其属性来读取具有特定名称的cookie。
HttpCookie myCookie = new HttpCookie("MyTestCookie"); myCookie = Request.Cookies["MyTestCookie"]; // Read the cookie information and display it. if (myCookie != null) Response.Write(""+ myCookie.Name + "
"+ myCookie.Value); else Response.Write("not found");
检索HttpWebResponse的HttpWebResponse.Cookies属性中的值。 在此示例中,将检索cookie并将其保存到隔离存储中:
private void ReadCallback(IAsyncResult asynchronousResult) { HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; HttpWebResponse response = (HttpWebResponse) request.EndGetResponse(asynchronousResult); using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForSite()) { using (IsolatedStorageFileStream isfs = isf.OpenFile("CookieExCookies", FileMode.OpenOrCreate, FileAccess.Write)) { using (StreamWriter sw = new StreamWriter(isfs)) { foreach (Cookie cookieValue in response.Cookies) { sw.WriteLine("Cookie: " + cookieValue.ToString()); } sw.Close(); } } } }
//Please use this, HttpWebRequest request = null; request = HttpWebRequest.Create(StringURL) as HttpWebRequest; HttpWebResponse TheRespone = (HttpWebResponse)request.GetResponse(); String setCookieHeader = TheRespone.Headers[HttpResponseHeader.SetCookie];
要获取cookie列表,您可以使用以下方法;
private async Task> GetCookies(string url) { var cookieContainer = new CookieContainer(); var uri = new Uri(url); using (var httpClientHandler = new HttpClientHandler { CookieContainer = cookieContainer }) { using (var httpClient = new HttpClient(httpClientHandler)) { await httpClient.GetAsync(uri); return cookieContainer.GetCookies(uri).Cast().ToList(); } } }