Cookies 通用应用程序Windows 8.1 httpclient,Cookie在WP8.1上工作,但在Windows 8.1上不工作

Cookies 通用应用程序Windows 8.1 httpclient,Cookie在WP8.1上工作,但在Windows 8.1上不工作,cookies,httpclient,windows-8.1,windows-phone-8.1,win-universal-app,Cookies,Httpclient,Windows 8.1,Windows Phone 8.1,Win Universal App,我有这段代码,它在WindowsPhone8.1上运行得非常好 不幸的是,它不能在Windows8.1上工作。我从这个请求得到的响应给了我一个会话已过期的页面,与没有cookie的页面一样。代码似乎很好,但看起来cookie没有设置好,或者我缺少了其他东西 是否需要添加一些内容才能使其适用于Windows应用商店应用程序 CookieContainer cookies = new CookieContainer(); HttpClientHandler handler = new HttpCli

我有这段代码,它在WindowsPhone8.1上运行得非常好

不幸的是,它不能在Windows8.1上工作。我从这个请求得到的响应给了我一个会话已过期的页面,与没有cookie的页面一样。代码似乎很好,但看起来cookie没有设置好,或者我缺少了其他东西

是否需要添加一些内容才能使其适用于Windows应用商店应用程序

CookieContainer cookies = new CookieContainer();
HttpClientHandler handler = new HttpClientHandler();
handler.CookieContainer = cookies;

   using (var client = new HttpClient(handler))
            {
                client.DefaultRequestHeaders.Add("Cookie", value.ToString());
                htmlPage = await client.GetStringAsync("https://www.someurl.com" + querystring);
            }

您的代码可以很好地传递头,但不能传递cookie。请尝试以下代码:

        HttpClientHandler handler = new HttpClientHandler();
        handler.CookieContainer.Add(new Uri("http://www.microsoft.com"), new Cookie("MyCookieName", "MyCookieValue"));
        using (var client = new HttpClient(handler))
        {
            htmlPage = await client.GetStringAsync("https://www.microsoft.com");
        }

System.Net.Http在W8.1上的工作方式似乎与在WP8.1上的工作方式不同。我永远也弄不明白其中的区别

尽管如此,我还是使用Windows.Web.Http重写了我的代码,这是8.1上的新版本,建议使用。下面是一个如何将Cookie附加到新httpclient的示例:

var bpf = new Windows.Web.Http.Filters.HttpBaseProtocolFilter();
var cm = bpf.CookieManager;
var cookie = new HttpCookie("name", ".example.com", "/") { Value = "value" };
cm.SetCookie(cookie);
var http = new HttpClient(bpf);
await http.PostAsync(new Uri("http://example.com/"), new HttpStringContent("content"));
这里还有一个示例:


谢谢你的回答,但它也不起作用。让我感到困惑的是,虽然该代码在Windows Phone上运行良好,但在Windows上却不起作用,我正在努力找出其中的差异。考虑了用户代理,但也尝试了不同的代理。在可湿性粉剂上始终工作良好,但在Windows上却不工作。不确定可能是什么问题。此代码在Windows 8.1上对我很有效。来自Fiddler在Windows 8.1上使用此代码:获取HTTP/1.1主机:www.microsoft.com Cookie:mycokiename=mycokievalue连接:保持有效可能与我尝试使用的服务器有关。我使用windows.web.http客户端重新编写了代码,microsoft建议无论如何都使用该客户端。谢谢你的帮助!!