我无法解决这个(登录)问题:
1)我发布一些数据
2)服务器做出响应,并在 header (Set-Cookie)中生成一些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 之前,我想知道为什么Cookie对象不会传播(0个Cookie),并填充 header 中的值。

有人有主意吗?

最佳答案

因为您需要使用cookie container

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

10-01 00:35