Почему настройка dotnets HttpClient.DefaultRequestVersion не применяется к методу HttpClient.SendAsyncC#

Место общения программистов C#
Ответить
Anonymous
 Почему настройка dotnets HttpClient.DefaultRequestVersion не применяется к методу HttpClient.SendAsync

Сообщение Anonymous »

Это сделано исключительно для того, чтобы помочь понять выбор дизайна класса dotnets HttpClient.
Предыстория: мы имели дело с балансировщиком нагрузки, который не поддерживал HTTP/1. * запросы. Не проблема, мы попытались перевести HttpClient.DefaultRequestVersion на HTTP/2.0 с HttpClient.DefaultVersionPolicy, установленным на HttpVersionPolicy.RequestVersionOrLower, ожидая, что этого будет достаточно для HttpClient< /code>, чтобы начать отправку запросов HTTP/2.0 (и вернуться к HTTP/1.1, когда это было невозможно).
Однако мы быстро заметили, что эти значения по умолчанию для HttpClient настраиваются во всем приложении для HttpClient. > похоже, не оказало никакого эффекта (очевидно, есть аргументы в пользу того, почему можно не захотеть этого делать, однако, пожалуйста, смотрите дальше xD).
В документации dotnet для HttpClient.DefaultRequestVersion, есть раздел примечаний, в котором говорится:

Свойство DefaultRequestVersion не применяется к SendAsync
метод. Параметр HttpRequestMessage передается в качестве аргумента

Код: Выделить всё

SendAsyncМетод 
имеет собственное свойство Version, которое управляет версией HTTP
, используемой для запроса.

Кто-нибудь может пролить свет какой-то свет вокруг этого дизайнерского решения, оно кажется немного нелогичным? Это чисто SoC для dotnets (то, что отправляет сообщение, и само сообщение — это две разные проблемы, но тогда зачем предлагать настройки HttpClient..., если это так)

Подробнее здесь: https://stackoverflow.com/questions/792 ... -the-httpc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»