【问题标题】:Posting data to asp.net Web API将数据发布到 asp.net Web API
【发布时间】:2013-03-11 23:16:07
【问题描述】:

我正在尝试找出新的 ASP.NET Web API。

到目前为止,我已经能够创建此方法签名并很好地连接到它并获得有效的响应...

[HttpPost]
public HttpResponseMessage CreateAccount()

我可以使用 fiddler 向此方法发送请求,并已验证它正在接收请求。

但是,当我尝试传递数据时,我遇到了问题。

我尝试的第一件事是......

[HttpPost]
public HttpResponseMessage CreateAccount([FromBody]string email, [FromBody]string password)

然后我输入

邮箱:xyz,密码:abc

进入提琴手的请求正文。当我这样做时,我得到一个 500 错误说明

'无法将多个参数('email' 和 'password')绑定到请求的内容。'

我也尝试过将此作为方法签名...

[HttpPost]
public HttpResponseMessage CreateAccount([FromBody]UserAccountRequestData data)

UserAccountRequestData 是一个简单的 POCO

public class UserAccountRequestData
{
    public string Email { get; set; }
    public string Password { get; set; }
}

我把

{电子邮件:xyz,密码:abc}

数据:{电子邮件:xyz,密码:abc}

进入请求的正文。在这两种尝试填充 POCO 的情况下,我都可以在调试时访问该方法,但数据对象始终为空。

我需要了解如何创建既能接受强类型 POCO 又能接受多种原始类型(如字符串和整数)的 API 方法。

谢谢

【问题讨论】:

    标签: c# asp.net http asp.net-mvc-4 asp.net-web-api


    【解决方案1】:

    您需要将Content-Type 标头设置为application/json,然后提供有效的JSON。

    {"Email":"xyz","Password":"abc"}
    

    【讨论】:

    • +1 表示 Darrel Miller 的回答。您也可以参考Sending JSON object to Web API 给出的答案。它确实为您的问题提供了示例代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 2018-02-28
    相关资源
    最近更新 更多