.NET 6中Http PostAsync请求400错误排查求助
问题诊断与解决方案
错误原因
400 Bad Request的核心原因是ASP.NET Core的参数绑定规则:对于string这类简单类型,框架默认优先从URL的查询字符串或路由参数中获取值,不会自动读取请求Body中的内容。你的客户端将数据放在请求Body里发送,但服务端参数未指定来源,导致框架无法匹配到参数值,从而返回400错误。
解决方案(三种可选)
方案1:指定参数从Body读取(推荐JSON格式)
给服务端参数添加[FromBody]特性,明确告知框架从请求Body读取参数;同时客户端需将内容格式化为标准JSON(字符串需包裹双引号),并设置正确的Content-Type。
服务端代码:
[Route("api/[controller]")] [ApiController] public class UtilisateurController : Controller { [HttpPost("AjouterUtilisateur1")] public ActionResult<string> AjouterUtilisateur1([FromBody] string jsonArgs) { // 业务逻辑实现 return Ok(jsonArgs); } }
客户端代码:
// 字符串需包裹双引号以符合JSON格式要求 string jsonContent = "\"MaChaine\""; HttpContent httpContent1 = new StringContent(jsonContent, Encoding.UTF8, "application/json"); HttpResponseMessage response1 = await client.PostAsync("http://localhost:6000/api/Utilisateur/AjouterUtilisateur1", httpContent1);
方案2:使用表单格式传递参数
若不想使用JSON格式,可通过表单形式发送数据,服务端指定从表单读取参数。
服务端代码:
[Route("api/[controller]")] [ApiController] public class UtilisateurController : Controller { [HttpPost("AjouterUtilisateur1")] public ActionResult<string> AjouterUtilisateur1([FromForm] string jsonArgs) { // 业务逻辑实现 return Ok(jsonArgs); } }
客户端代码:
// 构建表单键值对内容 var formData = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("jsonArgs", "MaChaine") }); HttpResponseMessage response1 = await client.PostAsync("http://localhost:6000/api/Utilisateur/AjouterUtilisateur1", formData);
方案3:延续路由参数传递方式(类似原Get请求)
如果想保持和原Get请求一致的参数传递逻辑,Post请求也可将参数放在路由中,无需修改URL拼接逻辑,仅需替换请求方法。
服务端代码:
[Route("api/[controller]")] [ApiController] public class UtilisateurController : Controller { [HttpPost("AjouterUtilisateur1/{jsonArgs}")] public ActionResult<string> AjouterUtilisateur1(string jsonArgs) { // 业务逻辑实现 return Ok(jsonArgs); } }
客户端代码:
// 保持原URL格式,使用PostAsync发送请求 HttpResponseMessage response1 = await client.PostAsync("http://localhost:6000/api/Utilisateur/AjouterUtilisateur1/MaChaine", null);
验证建议
可先用Postman或Swagger直接测试服务端接口,确认接口能正常接收参数后,再调试客户端代码,便于快速定位问题。
内容的提问来源于stack exchange,提问作者Philippe Lambert
相关产品推荐
相关产品推荐

