2013-05-05 55 views
8

我想使用此代码从HttpWebRequest的获取饼干

 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显示得到来自网站的所有Cookie,但我不是让他们的单。

回答

8

以下示例使用HttpCookie类及其属性来读取具有特定名称的cookie。

HttpCookie myCookie = new HttpCookie("MyTestCookie"); 
myCookie = Request.Cookies["MyTestCookie"]; 

// Read the cookie information and display it. 
if (myCookie != null) 
    Response.Write("<p>"+ myCookie.Name + "<p>"+ myCookie.Value); 
else 
    Response.Write("not found"); 

检索的HttpWebResponseHttpWebResponse.Cookies属性的值。在这个例子中,饼干被检索并保存到独立存储:

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(); 
      } 
     } 

    } 
} 
+0

谢谢你的回应,做什么我通过在作为参数传递给函数来获取饼干。 – Peter 2013-05-05 00:55:45

+0

@DavidJunker见我编辑的答案:) – Obama 2013-05-05 01:02:19

+0

谢谢明天我会看看,需要睡觉。 – Peter 2013-05-05 01:13:20

10
//Please use this, 
HttpWebRequest request = null; 
request = HttpWebRequest.Create(StringURL) as HttpWebRequest;     
HttpWebResponse TheRespone = (HttpWebResponse)request.GetResponse(); 
String setCookieHeader = TheRespone.Headers[HttpResponseHeader.SetCookie]; 
+0

谢谢,这使我解决了这个问题,使用* awful *方法:'OperationContext.Current.IncomingMessageHeaders [HttpRequestHeader.Cookie ]' – 2015-09-14 01:38:50