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;