如何通过API在c函数中POST无限数量的参数

本文关键字:无限 参数 POST API 何通过 函数 | 更新日期: 2023-09-27 18:25:41

所以我必须制作这个函数。以前的所有功能都是以类似的方式制作的:

[Route("MemberInfo"), HttpPost]
public IHttpActionResult ArrayTest([FromBody]Member member)
{
    using (var db = new DBContext())
    {
        var member = db.Members.Where(m => m.email == loginForm.email).FirstOrDefault();
        if (member != null)
        {
            return Ok(new { success = true, message = member });
        }
        else
        {
            return Json(new { success = false, message = "Invalid email or password" });
        }
    }
}

举个例子,这个函数中有更多的代码行,但这只是我如何编写它们的一个例子。

我使用谷歌的高级REST客户端来确保我的所有功能都能正常工作。对于MemberInfo,我点击POST选项,内容类型为application/json:

{
  email: "blahblah@gmail.com",
  password: "123456789"
}

我得到了我所有的信息。

这些功能被另一个正在创建我的iPhone应用程序的开发人员使用。我正在创建一个推荐朋友的功能。

我创建了一个小测试,看看无限参数是如何工作的(以防有多封引用的电子邮件):

[Route("ArrayTest"), HttpPost]
public IHttpActionResult ArrayTest(params string[] emails)
{            
    string emailSentence = "";
    for (Int32 i = 0; i < emails.Length; i++ )
    {
        emailSentence += emails[i] + ", ";
    }
    return Ok(new { success = true, emails = emailSentence });
}

我在输入参数时遇到问题,我该怎么做?

我试着这样做:

{
  ("hello", "buhbye", "ella")
}

它说"{"对象引用没有设置为对象的实例。"}"

如何通过API在c函数中POST无限数量的参数

这不是有效的JSON。您可以通过jsonlint.com 来验证您的请求

试试这个,将电子邮件作为数组发布

{
    "emails": [
        "hello",
        "buhbye",
        "ella"
    ]
}