You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用HttpClient发送int到FromBody参数时遭遇HTTP 415错误

解决HttpClient调用Put接口时的415 Unsupported Media Type错误

问题原因

出现415错误的核心原因有两点:

  1. StringContent默认使用text/plain作为Content-Type,而ASP.NET Core中带[FromBody]的接口默认只处理application/json格式的请求体;
  2. 原请求体是字符串形式的"5",未按照服务端期望的JSON格式传递数据。

解决方案

方案1:指定StringContent的MediaType为application/json

修改客户端代码,明确设置请求的Content-Type为application/json,并确保请求体是符合JSON格式的数值:

(await _client.PutAsync("foo", new StringContent("5", Encoding.UTF8, "application/json"))).EnsureSuccessStatusCode();

这里的"5"是JSON格式的数值(JSON中数字本身不需要引号),同时通过第三个参数指定了正确的Content-Type,服务端就能正确解析并绑定到int bar参数。

方案2:使用JsonContent自动处理序列化(.NET 5及以上版本支持)

如果使用的是.NET 5或更高版本,推荐使用JsonContent,它会自动将对象序列化为JSON格式,并设置正确的Content-Type:

(await _client.PutAsync("foo", JsonContent.Create(5))).EnsureSuccessStatusCode();

JsonContent.Create(5)会直接生成JSON格式的数值5,并将请求的Content-Type设为application/json,代码更简洁且不易出错。

内容的提问来源于stack exchange,提问作者Bluebaron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 20:37:50