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 }
);
你能试试吗?
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)?