Webapi发布多个参数

时间:2014-12-19 12:42:31

标签: json asp.net-web-api fiddler

我试图使用fiddler

将多个参数发布到webapi

我的webapi中的电话是

   [HttpPost]
   public object Post(string portfolioAPIKey, DateTime? lastCreativeUTC)
   {
           ......
   }

在我的webapiconfig中

    config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

在小提琴手中,我打电话给api http://xxxy.com/api/controller/Post使用以下内容

  User-Agent: Fiddler
  Host: xx.com
  Content-Type: application/json

当我尝试通过在请求正文中传递以下json来尝试访问它时,

       {"portfolioAPIKey":"6B026A0F-F270-4DBF-B84F-CE41F30099A6","lastCreativeUTC":"2014-12-19T12:17:17.8672363Z"}

我收到500内部服务器错误。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用以下签名创建一个类MyDto

public class MyDto {
    public string PortfolioAPIKey {get;set;}
    public DateTime? LastCreativeUTC {get;set;}
}

修改你的Post方法签名:

[HttpPost]
public object Post(MyDto dto)
{
        ......
}

更新

您不应该致电/Post,但是您应该在fiddler中向POST发出http://xxxy.com/api/<controller>请求,而<controller>是控制器的名称,而不是控制字。因此,如果您的控制器为MyController,则正确的网址为http://xxxy.com/api/my