Post и Get запросы

134
15 декабря 2021, 17:40
System.Net.Http

Как правильно формировать заголовки при обращении к сайтам с помощью HttpClient чтобы они показали документ такой же - как показывают браузеру ?

  • Ведь если я какие то заголовки не укажу, он может показать какой то другой документ или вовсе выдать мне ошибку.

Я думал это делать вручную, указывая конкретные заголовки:

client.DefaultRequestHeaders.Add("", "");

Попытался разобраться глубже:

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

Yandex:

Host: yandex.ru
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: Были куки
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
TE: Trailers

Mail:

Host: limg.imgsmail.ru
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
Accept: text/css,*/*;q=0.1
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://mail.ru/

Так вот как HttpClient может определять какие заголовки тому или иному сайту нужны и как это делает браузер ?

Если у меня будет 50 сайтов - не смогу же я под них заголовки руками повторять)

READ ALSO
Получить свойство наследника

Получить свойство наследника

У меня есть абстрактный класс со своими свойствами

126
Как кратко инициализировать объекты

Как кратко инициализировать объекты

Как то можно саму инициализацию объектов переписать в меньшое количество строк?

138