2

我有一个使用 Web 服务的 windows phone 7 应用程序。在登录服务中,它返回一个基于 .NET 表单身份验证的会话 ID,它使用会话 cookie。

但是在我的 windows phone 7 应用程序响应 cookie 中是空的,所以我无法在我的应用程序中维护会话。

这是我的代码,它将发布请求发送到登录服务

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

但我的 response.Cookies 返回 null。

4

1 回答 1

0

您使用的方法似乎是正确的,但仍然尝试将response.cookies复制到CookieCollection然后访问它。即只需将代码更改为,

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

不过,如果您没有得到正确答案,您的回复中可能不包含任何 cookie!

于 2013-11-15T07:30:48.313 回答