如何在Postman中以JSON为请求体发送POST请求调用Web API接口
问题原因与解决方案
原因
ASP.NET Web API 有默认的参数绑定规则:对于 string、int 这类简单类型的参数,默认只会从查询字符串、路由数据中取值,不会主动解析请求体里的JSON内容。你直接传JSON请求体时,框架找不到匹配的Action方法,就会返回404资源未找到错误。
可行解决方案
方案1:创建参数模型类(最推荐的规范做法)
先定义一个用于接收JSON参数的模型类:
public class PostRequest { public string x1 { get; set; } public string x2 { get; set; } }
修改控制器的Action代码,给参数标记 [FromBody] 特性,告诉框架从请求体里读取内容绑定到模型:
[HttpPost] public void Post([FromBody] PostRequest request) { Debug.WriteLine("POST resource called (" + request.x1 + ", " + request.x2 + ")." ); }
方案2:用JObject接收动态JSON(无需新建模型类)
如果不想单独建模型类,可以直接用Newtonsoft.Json的JObject接收请求体,需要先确保项目已引用Newtonsoft.Json包:
using Newtonsoft.Json.Linq; [HttpPost] public void Post([FromBody] JObject requestBody) { string x1 = requestBody["x1"]?.ToString(); string x2 = requestBody["x2"]?.ToString(); Debug.WriteLine("POST resource called (" + x1 + ", " + x2 + ")." ); }
Postman配置注意事项
- 请求头需要添加
Content-Type: application/json,确保框架识别请求体为JSON格式 - Body 选择
raw类型,格式下拉选JSON,再粘贴你的JSON请求内容即可正常调用
内容的提问来源于stack exchange,提问作者MightyMouse
相关产品推荐
相关产品推荐

