gpt4 book ai didi

c# - Windows Phone 8 的 WebResponse 是否跳过 set-cookie header

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:24 27 4
gpt4 key购买 nike

我正在构建的 Windows Phone 8 应用程序遇到一些奇怪的行为,我希望这里的人有一些经验。

我正在阅读一个使用普通 HttpWebRequest 的网站,并期待一个 cookie 作为响应。但是,不知何故,我没有在 WebResponse 中返回 Set-cookie header 。我在 WPF 下创建了相同的功能并且它正常工作 - 在响应中返回 Set-cookie header 。

我也尝试查看响应的 CookieContainer,但它也是空的。

这是我为此使用的代码。 注意:同一段代码(没有异步内容)在 WPF 中工作正常并返回 Set-Cookie header 。如有必要,我也可以发布:

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.mysite.com/login");

request.Method = HttpMethod.Post;
request.AllowAutoRedirect = false;//normally there is a redirect in place

postData = "username=1234&password=2345";
var data = Encoding.UTF8.GetBytes(postData);

request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

using (var stream = await Task.Factory.FromAsync<Stream>(request.BeginGetRequestStream, request.EndGetRequestStream, null))
{
await stream.WriteAsync(data, 0, data.Length);
stream.Close();
}

using (var response = await Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, null))
{
return response.Headers["set-cookie"];
}

因此,我得到了一些响应 header (例如内容类型和服务器特定的 header ),但没有 Set-Cookie 响应 header 。

最佳答案

我做了更多测试,set-cookie header 仅在 Windows Phone 模拟器上被省略。在使用实际设备进行调试时,会按预期接收 header 。

我仍然很奇怪为什么模拟器会这样。我在模拟器中看到很多关于 http-only cookie 问题的帖子,但没有一个有具体原因。

更新:

在 8.0.10322 模拟器上测试工作正常 - cookie 处理正确。看起来默认手机模拟器对 cookie 做了一些可疑的事情。

关于c# - Windows Phone 8 的 WebResponse 是否跳过 set-cookie header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22524866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com