Авторизация на сайте Cookie - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, мне нужно авторизоваться на сайте и далее посылать пост запросы с авторизованного аккаунта Вот что получаю от google chrome при авторизации
Листинг программы
  1. Request URL:http://xxxx.biz/login/login
  2. Request Method:POST
  3. Status Code:303 See Other
  4. Remote Address:176.9.136.59:80
  5.  
  6. Response Headers
  7. HTTP/1.1 303 See Other
  8. Server: nginx
  9. Date: Sun, 08 May 2016 04:24:59 GMT
  10. Content-Type: text/html;charset=UTF-8
  11. Content-Length: 0
  12. Connection: keep-alive
  13. Cache-control: private, max-age=0
  14. Expires: Thu, 19 Nov 1981 08:52:00 GMT
  15. Last-Modified: Sun, 08 May 2016 04:24:59 GMT
  16. Location: http://xxxx.biz/
  17. Set-Cookie: xf_user=1%2C594a06e721ac2dc1dcc7714cfbeddd89f064d025; expires=Tue, 07-Jun-2016 04:24:58 GMT; path=/; httponly
  18. Set-Cookie: xf_session=6c13ff2937edee51043df5eb61594a67; path=/; httponly
  19. X-Frame-Options: SAMEORIGIN
  20. X-Powered-By: PHP/5.3.3
  21. X-Robots-Tag: none
  22.  
  23. Request Headers
  24. POST /login/login HTTP/1.1
  25. Host: ojrs243un5zgkltcnf5a.cmle.ru
  26. Connection: keep-alive
  27. Content-Length: 114
  28. Cache-Control: max-age=0
  29. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  30. Origin: http://ojrs243un5zgkltcnf5a.cmle.ru
  31. Upgrade-Insecure-Requests: 1
  32. User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36
  33. Content-Type: application/x-www-form-urlencoded
  34. Referer: http://xxxx.biz/
  35. Accept-Encoding: gzip, deflate
  36. Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
  37. Cookie: crtg_rta=; _gat=1; xf_session=d8719b6c9692ab795b6ae3c45dfd24d8; _ga=GA1.2.783234481.1460544443
  38.  
  39. Form Data
  40. login=admin&register=0&password=XXXXXX&remember=1&cookie_check=1&_xfToken=&redirect=http%3A%2F%2Fxxxx.biz%2F
Так авторизуюсь
Листинг программы
  1. WebRequest request = WebRequest.Create("http://xxx.biz/login/login");
  2. request.Method = "POST";
  3. string postData = "login=admin&register=0&password=xxxxxxxxx&remember=1&cookie_check=1&_xfToken=&redirect=http%3A%2F%2Fxxxx.biz%2F";
  4. byte[] byteArray = Encoding.GetEncoding("windows-1251").GetBytes(postData);
  5. request.ContentType = "application/x-www-form-urlencoded";
  6. request.ContentLength = byteArray.Length;
  7. Stream dataStream = request.GetRequestStream();
  8. dataStream.Write(byteArray, 0, byteArray.Length);
  9. dataStream.Close();
  10. WebResponse response = request.GetResponse();
  11. dataStream = response.GetResponseStream();
  12. StreamReader reader = new StreamReader(dataStream);
  13. string responseFromServer = reader.ReadToEnd();
  14. //MessageBox.Show(responseFromServer);
  15. textBox1.Text = responseFromServer;
  16. reader.Close();
  17. dataStream.Close();
  18. response.Close();
Но почему то авторизация не проходит Так передаю пост-запрос
Листинг программы
  1. WebRequest request = WebRequest.Create(textBox6.Text);
  2. request.Method = "POST";
  3. string nam = WebUtility.UrlEncode(name[i]);
  4. string mes = WebUtility.UrlEncode(message[i]);
  5. string postData = "_guestUsername=" + nam + "&message_html=" + mes + "&_xfRelativeResolver=" + textBox6.Text + "%2Freply&_xfToken=&_xfRequestUri=%2Fthreads%2Fxxxx.1470%2Freply&_xfNoRedirect=1&_xfResponseType=json";
  6. //_guestUsername=nam&message_html=" + mes + "&_xfRelativeResolver=" + textBox6.Text + "%2Freply&_xfToken=&_xfRequestUri=%2Fthreads%2Fxxxx.1470%2Freply&_xfNoRedirect=1&_xfResponseType=json
  7. byte[] byteArray = Encoding.GetEncoding("windows-1251").GetBytes(postData);
  8. request.ContentType = "application/x-www-form-urlencoded";
  9. request.ContentLength = byteArray.Length;
  10. Stream dataStream = request.GetRequestStream();
  11. dataStream.Write(byteArray, 0, byteArray.Length);
  12. dataStream.Close();
  13. WebResponse response = request.GetResponse();
  14. dataStream = response.GetResponseStream();
  15. StreamReader reader = new StreamReader(dataStream);
  16. string responseFromServer = reader.ReadToEnd();
  17. reader.Close();
  18. dataStream.Close();
  19. response.Close();
Почему не удается авторизоваться? И как получить и подключить куки к пост-запросу?
При авторизации в ответе нашел такую вот строчку "Чтобы войти на сайт, в Вашем браузере должны быть включены cookie. Вы не сможете войти, пока они выключены."

Решение задачи: «Авторизация на сайте Cookie»

textual
Листинг программы
  1. request.CookieContainer = cookies;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут