繁体   English   中英

如何在Web API方法中读取传入的Http Post请求的请求正文?

[英]How to read Request body of an incoming Http Post request in a web api method?

我正在尝试以API方法读取传入的http发布请求的内容。

[HttpPost]
[Route("api/Process")]
public async Task Process())
{
    //string result = await Request.Content.ReadAsStringAsync();
    NameValueCollection result = await Request.Content.ReadAsFormDataAsync();
}

当我看着提琴手时,请求正文如下。 它在那里显示为“名称/值”对。

Request body:

name: test
total: 200
email: test@test.com
identifier: 493493

如何在API中阅读它们?

ReadAsStringAsync

name=test&total=200&email=test@test.com&identifier=493493

ReadAsFormDataAsync仅提供键集合,包括名称,总数,电子邮件,标识符。 但是没有价值集合。

感谢您的任何建议。

您为什么不只添加一个模型类来收集发布的数据。 您无需手动获取已发布的数据以进行响应。 MVC应该执行它。

public class ProcessInput
{
    public string Name { get; set; }

    public string Total { get; set; }

    public string Email { get; set; }

    public string Identifier { get; set; }
}

API方法;

    [HttpPost]
    [Route("api/Process")]
    public async Task Process(ProcessInput input)
    {
        //var name = input.Name;
    }

使用FormCollection:

[HttpPost]
[Route("api/Process")]
public async Task Process(FormCollection form)
{
    if (form.AllKeys.Contains("name")) lcName = form["name"].ToString() ?? "";
    ... etc ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM