簡體   English   中英

Post參數始終為null,C#API控制器

[英]Post Parameter is always null, c# api controller

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

通過調試,我輸入了方法,並看到該文件始終為null,使用了許多不同的請求,其中一個應該可以工作(還嘗試使用Application / json的大寫字母a)嗎?

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

代替Content type標頭使用accept標頭,它應該可以工作。

您應該發送xhr的標頭(“ XMLHttpRequest”),然后才能訪問您的Web-api。 嘗試在標題下面添加並運行它。

"X-Requested-With": "XMLHttpRequest"

確保您的curl語法正確。 這是curl 手冊中的語法:

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

您是否嘗試過其他休閑客戶端來測試您的應用程序(例如Fiddler)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM