2011-02-05 7 views
0

Я использую HTTPWebRequest/HTTPWebResponse для взаимодействия с сайтом (www.lockerz.com). Итак, я прошел проверку подлинности на сайте:HttpWebResponse не содержит cookies

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(); 

Я смотрю на запросы \ ответы с помощью Чарльза, и он говорит, что в ответе должно быть печенье, но когда я пытаюсь составить список файлов cookie, которые я получаю, он говорит, что нет файлов cookie!

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

Я попытался добавить CookieContainer, но он все равно не работает.

+3

Вы пытались прикрепить CookieContainer? http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.cookiecontainer.aspx –

ответ

0

Это может применяться здесь, у меня была эта проблема с сеансами, поэтому я буду принимать то же самое для файлов cookie.

Вы звоните: http://www.lockerz.com/auth/login. Но если человек выходит на страницу без «www». часть URL-адреса, то их куки-файлы не выживут, отправляются на «www». сайт, потому что они разные сайты (в отношении файлов cookie).

Я бы просто сделал запрос на «/ auth/login», таким образом, не имеет значения, что пользователь имеет в качестве URL-адреса в своем браузере.

Надеюсь, что это сработает.

Смежные вопросы