C# 从数据 POST 上提供的服务器响应中获取 Cookie

标签 c# cookies post

我无法解决这个(登录)问题: 1)我发布一些数据 2)服务器使用react并在 header 中使用一些cookie(Set-Cookie)生成响应 3) 我想存储这些 cookie,以便以后可以使用它们生成更多请求

我的 C# 代码如下所示:

byte[] buffer = Encoding.ASCII.GetBytes(data_to_post);

HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
WebReq.Method = "POST";
WebReq.ContentType = "application/x-www-form-urlencoded";
WebReq.ContentLength = buffer.Length;

Stream PostData = WebReq.GetRequestStream();
PostData.Write(buffer, 0, buffer.Length);
PostData.Close();

HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
WebResp.Close(); // I want cookies here! But there is no cookies :(

问题是 WebResp 确实有带值的“Set-Cookie” header 。在我运行和解析 header 之前,我想知道为什么 Cookies 对象没有传播(0 个 cookie)并填充了来自 header 的值。

有人知道吗?

最佳答案

因为你需要使用一个cookie container .

var cookieContainer = new CookieContainer();
WebReq.CookieContainer = cookieContainer;

关于C# 从数据 POST 上提供的服务器响应中获取 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3079567/

相关文章:

c# - 管理双屏最大化功能

c# - 带有参数的方法的异步等待问题

c# - 我需要一些想法来对这个 Tasked 方法进行单元测试

javascript - Cookie 仅适用于 Firefox

objective-c - NSString的stringWithContentsOfURL使用浏览器cookie?

c# - 查找数组的最后一个索引

java - ReSTLet 客户端在请求中设置的 Cookie 在 ReSTLet Servlet 结束时删除

json - 如何从 Node.Js Express 中的发布数据接收(并解码)JSON?

Python Flask POST 400 错误请求错误

java - 使用发布请求在 Google 日历中创建新事件