【问题标题】:Getting Cookies from HTTP response从 HTTP 响应中获取 Cookie
【发布时间】:2012-05-11 12:37:06
【问题描述】:

我在从 HTTP 响应中获取 cookie 时遇到问题。我确定,该响应应该有 cookie,但我在我的应用程序中看不到它们。

这是我的代码:

    private static CookieContainer cookies = new CookieContainer();
    private static CookieContainer Cookies
    {
        get
        {
            return cookies;
        }
    }

    public static async Task<HttpStatusCode> SendPostRequest(string url, string postData)
    {
        if (url == null)
            throw new ArgumentNullException("url");

        if (postData == null)
            throw new ArgumentNullException("postData");

        HttpStatusCode statusCodeToReturn = HttpStatusCode.Forbidden;
        HttpWebRequest webRequest = HttpWebRequest.CreateHttp(url);
        webRequest.Method = "POST";
        var cookies = Cookies;
        webRequest.CookieContainer = cookies;
        //webRequest.SupportsCookieContainer = true;
        using (var requestStream = await webRequest.GetRequestStreamAsync())
        {
            var bytes = Encoding.UTF8.GetBytes(postData);
            requestStream.Write(bytes, 0, bytes.Length);
        }

        using (WebResponse response = await webRequest.GetResponseAsync())
        {
            statusCodeToReturn = WebResponseToHTTPStatusCode(response);
        }

        return statusCodeToReturn;
    }

Cookie(使用 Wireshark):

rack.session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiJFMzg1ZjYxNzIzNzQ4MmY5NmI3NTMw%0AYWMwZmRjNmVmZjMwMDk4OTgzZGUwNjRlNzIzODlmODNjYzE2YmVmMjNlOQ%3D%3D%0A--30d79cd2276c3236de11104852bba4b84bf80f26; path=/; HttpOnly

【问题讨论】:

  • 可能重复WP7 Cookies
  • 我明白了。问题在于返回的 Cookie。 WP7 不支持没有设置 DOMAIN 的 Cookie。

标签: windows-phone-7 cookies asynchronous httpwebrequest response


【解决方案1】:

问题在于返回的 Cookie。 WP7 不支持没有设置 DOMAIN 的 Cookie。

【讨论】:

  • 那么有没有机会获得它们?例如使用 WebBrowser。
【解决方案2】:

我认为你可以只创建一个全局变量来保存cookie。例如在你的app.xaml.cs文件中你可以这样创建一个变量:

public CookieContainer GlobalCookie{get;set;}

并使 GloalCookie 等于你成功的 HttpWebRequest CookieContainer。

那么你可以在调用另一个API的时候使用这个变量。希望对你有帮助:)

【讨论】:

  • 我有全局变量。在帖子中查看我的代码。 (私有静态 CookieContainer Cookies)。
  • 我想知道你什么时候给全局静态cookies变量值?我在你上面的代码段中看不到。
  • 查看我的第一篇文章(问题)。前 8 行代码。反正我解决了。
猜你喜欢
  • 1970-01-01
  • 2014-02-26
  • 2022-06-28
  • 2017-01-04
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 2012-05-27
相关资源
最近更新 更多