C# POST запрос, отправляются не все cookies
Формулировка задачи:
Всем привет.
Я в тупике
Сайт авито, отправляю первый запрос GET чтобы получить куки с сайта для дальнейшего использования
Получаю куки, сохраняю в контейнер. Всё хорошо, точно также как в фидлере. (рис.1) Ещё пару раз отправляю запрос с куками всё также совпадает с фидлером. (рис.2)
Далее мне нужно отправить POST запрос с уже имеющимися куками и тут есть проблема
так отправляю кодом, ответ приходит но не совсем такой как должен быть
На рисунке 3 показано как кодом отправляется, на рисунке 4 показано как отправляется мозилой.
Листинг программы
- CookieContainer container = new CookieContainer();
- private void get_http()
- {
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.avito.ru");
- request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0";
- request.CookieContainer = container;
- request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
- HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
- Stream stream = resp.GetResponseStream();
- StreamReader sr = new StreamReader(stream);
- container = request.CookieContainer;
- resp.Close();
- sr.Close();
- }
Листинг программы
- public void PostMethod(string postedData, string postUrl)
- {
- try
- {
- UTF8Encoding encoding = new UTF8Encoding();
- Byte[] Data_ = encoding.GetBytes(postedData);
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);
- request.Method = "POST";
- request.Accept = "*/*";
- request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0";
- request.Referer = "http://www.avito.ru/ufa/kvartiry/1-k_kvartira_37_m_4_et._263172573";
- request.CookieContainer = container;
- request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
- Stream newStream = request.GetRequestStream();
- newStream.Write(Data_, 0, Data_.Length);
- newStream.Close();
- WebResponse response = request.GetResponse();
- newStream = response.GetResponseStream();
- StreamReader sr = new StreamReader(newStream);
- MessageBox.Show(sr.ReadToEnd());
- sr.Close();
- newStream.Close();
- }
- catch (Exception ex)
- {
- MessageBox.Show("error: " + ex.Message);
- }
- }
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
Листинг программы
- request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д