HttpWebResponse不包含cookie

时间:2011-02-05 12:54:30

标签: cookies httpwebrequest httpwebresponse

我正在使用HTTPWebRequest / HTTPWebResponse与该网站进行互动(www.lockerz.com)。所以,我在网站上进行身份验证:

HttpWebRequest webRequest = (HttpWebRequest) HttpWebRequest.Create("http://www.lockerz.com/auth/login");
byte[] bytes = Encoding.ASCII.GetBytes("handle=" + textBoxEmail.Text + "&password=" + textBoxPassword.Text);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
webRequest.ContentLength = bytes.Length;
Stream os = webRequest.GetRequestStream();
os.Write(bytes, 0, bytes.Length);

然后我得到回复:

HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

我正在使用Charles查看请求\响应,它说在响应中必须有cookie,但是当我尝试列出cookie时,我得到它说没有cookie!

foreach(Cookie c in webResponse.Cookies) {
    writeToLog("Cookie Name: " + c.Name + " Value: " + c.Value);
    cc.Add(c);
}

我已尝试添加CookieContainer,但无论如何它都无法正常工作。

1 个答案:

答案 0 :(得分:0)

这可能适用于此,我在会话中遇到了这个问题,因此对于Cookie我会假设相同。

您正在致电:http://www.lockerz.com/auth/login。但如果一个人没有“www”就去了一个页面。网址的一部分,然后他们的cookie将无法生存发送到“www”。网站,因为它们是不同的网站(就cookie而言)。

我只是将请求发送到“/ auth / login”,这样,用户在浏览器中使用的内容无关紧要。

希望这有效。