2013-11-15 104 views
2

我有一個使用Web服務的Windows Phone 7應用程序。在登錄服務中,它會返回一個基於.NET表單身份驗證的會話ID,該表單使用會話cookie。在使用Web服務的Windows Phone 7中,響應cookie爲空

但在我的Windows Phone 7應用程序響應cookie爲空,所以我無法在我的應用程序中維護會話。

這是我的代碼,它發送POST請求登錄服務

 var serviceUrl = new Uri("https://www.bypost.com/api/login"); 
     HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(serviceUrl); 
     webRequest.Method = "POST"; 
     webRequest.ContentType = "application/x-www-form-urlencoded"; 

     #region 

     var container = new CookieContainer(); 
     container.Add(serviceUrl, new Cookie("abc", "xyz")); 
     webRequest.CookieContainer = container; 

     #endregion 

     webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest); 
     Console.Write("data sent"); 

這裏是我的響應代碼: HttpWebRequest的的WebRequest =(HttpWebRequest的)asynchronousResult.AsyncState; HttpWebResponse響應;

  response = (HttpWebResponse)webRequest.EndGetResponse(asynchronousResult); 

      foreach (Cookie cook in response.Cookies) 
      { 
       Console.WriteLine(cook); 
      } 

但我的迴應.Cookies返回null。

回答

0

您使用的方法似乎是正確的,但仍然嘗試複製response.cookiesCookieCollection,然後訪問它。 即只需更改代碼,

response = (HttpWebResponse)webRequest.EndGetResponse(asynchronousResult); 
CookieCollection cookies = new CookieCollection(); 
cookies = response.Cookies; 
foreach (Cookie cook in cookies) 
{ 
    Console.WriteLine(cook.Value); 
} 

不過,如果你沒有得到正確的答案可能是你的迴應不包含任何餅乾!

+0

感謝您的回覆...我使用的webservices支持HttpOnly,並且我們無法查看cookie –

相關問題