Я работаю с плохо спроектированным API, и среди его недостатков у него есть одна конкретная конечная точка, которая не должна давать определенный пользовательский заголовок, в то время как буквально каждая другая конечная точка требует этого. В результате он включен в DefaultRequestHeaders
, поэтому мне не нужно добавлять его вручную к каждому запросу.
Однако сейчас для этой конкретной конечной точки мне нужно удалить ее, и я не уверен, как или если это вообще возможно. В некоторой степени все усложняется, я имею дело с экземпляром HttpClient
в одиночной области действия, так что любые попытки с DefaultRequestHeaders
не нужны. Другими словами, я не могу сделать что-то хакерское, например временно удалить заголовок, а затем добавить его обратно после запроса, потому что это может повлиять на выполнение других параллельных запросов. К сожалению, даже если я использую SendAsync
с пользовательским экземпляром HttpRequestMessage
, HttpClient
все еще добавляет заголовок.
Кроме того, хотя это будет работать, я бы действительно предпочел не вводить другой экземпляр HttpClient
без заголовка, добавленного к DefaultRequestHeaders
. Работа с двумя разными HttpClient
экземплярами в одном и том же классе кажется просто ужасной идеей по многим причинам.
Мне здесь не повезло, или есть какое-то решение, которое я упустил после того, как обыскивал Меж сети в течение последнего часа?
UPDATE
Одна вещь, которую я действительно нашел, что с пользовательским экземпляром HttpRequestMessage
, я могу по существу очистить заголовок, установив его в пустую строку на HttpRequestMessage
. Так как это явно установлено, HttpClient
не перезаписывает его версией по умолчанию. Это по-прежнему означает, что заголовок отправляется, но, по крайней мере, он на самом деле не имеет значения. Тем не менее, все еще заинтересованы в лучшем решении, если оно существует.