从API控制器调用POST方法
本文关键字:POST 方法 调用 控制器 API | 更新日期: 2023-09-27 18:13:52
我有一个名为MyFIlesController的API控制器。
在其中,我有这个方法:
// POST api/myfiles
public void Post([FromBody]string value)
{
}
我是这样调用Fiddler的
POST
URL: `http://localhost:58075/api/myfiles`
-------------------------
Request Header:
User-Agent: Fiddler
Host: localhost:58075
Content-Type: application/json
Content-length: 18
-------------
Request body:
{"value": "asjkfsf"}
方法被调用,但value为null。我做错了什么?
创建一个与JSON对应的类:
public class Test
{
public string value{get; set;}
public int ID {get; set;}
}
然后更改Api-action:
// POST api/myfiles
public void Post([FromBody]Test value)
{
}
如果您不想这样做,只需更改POST-body:
"somevalue"
EDIT:为POST-payload添加ID。现在你的JSON应该是这样的:
{"value": "someval",
"ID": 1}
根据MVC文档http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1,这完全显示了与您的情况相同
进入发送简单类型部分。
当你发送简单的值时,你需要
- 使用
FromBody 属性
客户端需要发送以下格式的值:
=价值
具体来说,对于简单类型,名称/值对的名称部分必须为空。
无论如何,为了进一步增强,您最好使用复杂类型(对象)来接受参数。
你需要从:
Request body:
{"value": "asjkfsf"}
:
Request body:
"asjkfsf"
它将工作于json格式的简单类型