我无法解决这个(登录)问题:
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;