Получить cookie с помощью HttpWebResponse

#c# #asp.net

#c# #asp.net

Вопрос:

Я пытаюсь получить Cookie из HTTP get запроса с помощью объекта HttpWebReqquest в c #, но я его не нахожу. если я выполню следующий http-запрос, получите запрос в браузере:

https://www.lefrecce.it/msite/api/solutions ?источник = Центральный Милан и пункт назначения = Римский терминал amp; arflag = Aamp;adate= 25/01/2021 0:00:00amp;atime = 10amp;adultno = 1amp; childno = 0amp;direction = A amp; frecce = falseamp;only regional = false

вы можете ясно видеть, что существует 3 набора файлов cookie:

введите описание изображения здесь

но когда я выполняю его с помощью HttpWebRequest:

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.AutomaticDecompression = DecompressionMethods.GZip;

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                using (Stream stream = response.GetResponseStream())
                using (StreamReader reader = new StreamReader(stream))
                {
                    res = reader.ReadToEnd();
                }
 

Я вижу в заголовках только 2 файла cookie, а третий отсутствует:

введите описание изображения здесь

итак, как я могу получить этот файл cookie?

Спасибо.

Комментарии:

1. Посмотрите на заголовки запросов браузеров, там будут некоторые (user-agent / accept / любые другие существующие файлы cookie), которые не отправляются с запросом HttpWebRequest, если вы явно не добавите их.

2. но почему я должен отправлять его в моем HttpWebRequest? я не отправлял их при выполнении URL-адреса в браузере…

3. Получение файлов cookie из ответа и добавление их в следующий запрос — это то, что делает браузер. Если вы используете an HttpWebRequest (или соответствующий способ на любом языке программирования), вам необходимо самостоятельно обработать все данные, отправляемые на сервер.

Ответ №1:

Просто попробовал это в net5, и я вижу три файла cookie: Установить HTTP-заголовок cookie