很抱歉这样问这个问题。我可以给你一种我希望你为我编写代码的感觉。我已经花了一天时间编写代码以发送包含带有版本控制的标头的 http 请求:
对于版本控制,我使用来自 Microsoft/aspnet-api-versioning 项目的媒体类型的版本控制。
我的 API 部分工作正常,我可以使用 Postman 请求正确的版本而不会出现问题:
您看到这一行“Content-Type = application/json;v=2.0”了吗?在邮递员上没问题。使用 C# 中的 HttpClient 是不可能的。
让我在这里复制我尝试过的所有错误解决方案。每次尝试新解决方案时,我都会编辑此问题。通过设施,但为了更清楚,我将复制粘贴图像:
解决方案 1:使用 new Content = ... 的扩展方法
解决方案 1B:来自 BeginnerTejas
解决方案 1C:来自 BeginnerTejas,但现在使用 MediaTypeWithQualityHeaderValue
解决方案 2:使用 request.Headers.Add(...) 的扩展方法
解决方案 3:带有 Client.DefaultRequestHeaders.TryAddWithoutValidation(...) 的 BaseProxy 似乎我无法添加任何“Content-Type”
解决方案 4:BaseProxy 与 Client.DefaultRequestHeaders.Accept.Add(...)
解决方案5:request.Headers.TryAddWithoutValidation("Content-Type", "application/json");