Post参数总是null, c# api控制器

本文关键字:api 控制器 null 参数 Post | 更新日期: 2023-09-27 18:07:04

public void PostImport([FromBody]string file)
{}

通过调试,我已经进入方法,看到文件总是null,使用了许多不同的请求,其中一个应该工作(也尝试了大写的应用程序/json)?:

C:'>curl -X POST -H "Content-Type: application/json" -d "{'"'":'"myStr'"}" http://localhost:61393/api/admin/import

C:'>curl -X POST -H "Content-Type: application/json" -d "{'"file'":'"myStr'"}" http://localhost:61393/api/admin/import

我的路由设置如下

config.Routes.MapHttpRoute(
  name: "DefaultApi",
  routeTemplate: "api/{controller}/{id}",
  defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

Post参数总是null, c# api控制器

你能试试吗?

curl -i -H "Accept: application/json" -X POST -d "=myStr" http://localhost:61393/api/admin/import

使用accept header代替Content type header,应该可以工作

你应该为xhr("XMLHttpRequest")发送一个报头,只有这样你才能访问你的web-api。尝试添加下面的标题并运行它。

"X-Requested-With": "XMLHttpRequest"

确保curl语法正确。这是curl手册中的语法:

curl -d "name=Rafael%20Sagula&phone=3320780" ' 
            http://www.where.com/guest.cgi

您是否尝试了另一个rest客户端来测试您的应用程序(例如Fiddler)?