从API控制器调用POST方法

pet*_*ski 2 c# api post

我有一个名为MyFIlesController的API控制器.

在其中,我有这个方法:

// POST api/myfiles
public void Post([FromBody]string value)
{
}
Run Code Online (Sandbox Code Playgroud)

以下是我与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"}
Run Code Online (Sandbox Code Playgroud)

调用该方法,但value为null.我究竟做错了什么?

Ken*_*eth 7

创建一个与您的JSON对应的类:

public class Test
{
    public string value{get; set;}
    public int ID {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

然后改变你的Api-action:

// POST api/myfiles
public void Post([FromBody]Test value)
{

}
Run Code Online (Sandbox Code Playgroud)

如果您不想这样做,只需更改POST主体:

"somevalue"
Run Code Online (Sandbox Code Playgroud)

编辑:为POST-payload添加了ID.现在你的JSON应该是这样的:

{"value": "someval",
"ID": 1}
Run Code Online (Sandbox Code Playgroud)