C# POST запрос, отправляются не все cookies

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

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

Всем привет. Я в тупике Сайт авито, отправляю первый запрос GET чтобы получить куки с сайта для дальнейшего использования
Листинг программы
  1. CookieContainer container = new CookieContainer();
  2. private void get_http()
  3. {
  4. HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.avito.ru");
  5. request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0";
  6. request.CookieContainer = container;
  7. request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
  8. HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
  9. Stream stream = resp.GetResponseStream();
  10. StreamReader sr = new StreamReader(stream);
  11. container = request.CookieContainer;
  12. resp.Close();
  13. sr.Close();
  14. }
Получаю куки, сохраняю в контейнер. Всё хорошо, точно также как в фидлере. (рис.1) Ещё пару раз отправляю запрос с куками всё также совпадает с фидлером. (рис.2) Далее мне нужно отправить POST запрос с уже имеющимися куками и тут есть проблема так отправляю кодом, ответ приходит но не совсем такой как должен быть
Листинг программы
  1. public void PostMethod(string postedData, string postUrl)
  2. {
  3. try
  4. {
  5. UTF8Encoding encoding = new UTF8Encoding();
  6. Byte[] Data_ = encoding.GetBytes(postedData);
  7. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);
  8. request.Method = "POST";
  9. request.Accept = "*/*";
  10. request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0";
  11. request.Referer = "http://www.avito.ru/ufa/kvartiry/1-k_kvartira_37_m_4_et._263172573";
  12. request.CookieContainer = container;
  13. request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
  14. Stream newStream = request.GetRequestStream();
  15. newStream.Write(Data_, 0, Data_.Length);
  16. newStream.Close();
  17. WebResponse response = request.GetResponse();
  18. newStream = response.GetResponseStream();
  19. StreamReader sr = new StreamReader(newStream);
  20. MessageBox.Show(sr.ReadToEnd());
  21. sr.Close();
  22. newStream.Close();
  23. }
  24. catch (Exception ex)
  25. {
  26. MessageBox.Show("error: " + ex.Message);
  27. }
  28. }
На рисунке 3 показано как кодом отправляется, на рисунке 4 показано как отправляется мозилой.

1.

Самый главный вопрос, почему браузером отправляется намного больше кукисов? И откуда они берутся, а именно __gads __utma= __utmb= __utmc= __utmz=

2.

Как добавить к запросу вот это

"Accept-Encoding: gzip, deflate"

и это

"Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"

3.

Если приходит ответ от сайта не с ошибкой но не тот который приходит на браузер то это нормально или пост запрос не обработан там как нужно?

Решение задачи: «C# POST запрос, отправляются не все cookies»

textual
Листинг программы
  1. request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

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


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

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

11   голосов , оценка 3.545 из 5

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

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

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