我正在尝试在API方法中读取传入的http post请求的内容。
[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
仅提供密钥集合,即名称,总计,电子邮件,标识符。但是没有价值收集。
感谢您的任何建议。
答案 0 :(得分:1)
为什么不添加模型类来收集发布的数据。您无需手动接收已发布的数据作为响应。 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;
}
答案 1 :(得分:-2)
使用FormCollection:
[HttpPost]
[Route("api/Process")]
public async Task Process(FormCollection form)
{
if (form.AllKeys.Contains("name")) lcName = form["name"].ToString() ?? "";
... etc ...
}