【问题标题】:Response cookies are empty in windows phone 7 consuming web services在使用 Web 服务的 Windows Phone 7 中,响应 cookie 为空
【发布时间】:2013-11-28 10:22:30
【问题描述】:

我有一个使用 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。

【问题讨论】:

    标签: c# windows-phone-7 cookies


    【解决方案1】:

    您使用的方法似乎是正确的,但仍然尝试将 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!

    【讨论】:

    • 感谢您的回复...我使用的网络服务支持 HttpOnly 并且我们无法看到 cookie
    猜你喜欢
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多