【发布时间】:2023-03-11 12:35:01
【问题描述】:
我正在尝试在 .net 核心项目中使用 HttpClient 向接受/返回 JSON 的 REST 服务发出 GET 请求。我不控制外部服务。
无论我如何尝试,我都无法将 Content-Type 标头设置为 application/json only。
当我使用时
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
它在 HTTP GET 请求中发送:
Content-Type: application/json; charset=utf-8
但是,此特定服务不适用于此。仅当标题为:
Content-Type: application/json
我尝试在没有验证的情况下设置标头,并且我在 web/SO 上找到的所有方法都不适用于 .net 核心。所有其他发送 HTTP 请求的方法在 .net 核心中都不可用,所以我需要弄清楚这一点。如何排除内容类型中的字符集?
使用解决方法进行编辑
如答案中所述,服务应使用 Accept 标头。解决方法(正如 Shaun Luttin 在他的回答中所说)是向 GET 添加一个空内容(什么?GET 没有内容!是的......)。它不漂亮,但确实有效。
【问题讨论】:
-
可以改服务吗?
-
很遗憾我做不到。
标签: c# .net asp.net-core dotnet-httpclient