当我尝试使用Postman测试API时,为什么没有传入参数?

时间:2015-09-24 08:57:03

标签: c# asp.net api post postman

我使用Microsoft Visual Studio 2012 MVC 4 ASP.NET C#构建了一个简单的WEB API。 我正在尝试测试我的POST请求方法是否有效。

My Post方法将Object作为参数。

 public class Object
    {
        [Key]
        public int ID{ get; set; }
        public string Name { get; set; }


        public Object()
        {

        }
        public Object(int i, string n)
        {
            ID = i;
            Name = n;
        }
    }
}

在我的ObjectController中我有这个:

// POST api/Object
        public HttpResponseMessage PostObject (Object o)
        {
            if (o == null)
                throw new NullReferenceException("Nothing is being passed in");

            return HelperFunction.Post(o);
            //HelperFunction class not shown. Post method is static.
        }

现在,当我尝试使用Postman来测试它时,我不断得到Null引用异常,我认为Object o null

对于关键,我实际上是把字母o 为了价值,我尝试了以下方法:

  1. new Object(3,“Test”)
  2. (3,“test”)
  3. 我甚至尝试更改整个代码,以便我的Post方法接受int和string的2个参数,然后创建自己的Object。
  4. 我认为这只是Postman语法的一个问题,但在更多的情况下,我已经把我所有的代码。

    提前感谢您的帮助。

    编辑:我的班级名称和我的控制器实际上并不称为“对象”。这可能会引起一些混乱,因为这是一个保留字。我试图让代码更具可读性。让我知道这是否令人困惑,我将编辑它。

1 个答案:

答案 0 :(得分:0)

如果不知道你的请求主体是什么样的,以及你究竟有多少邮递员,那么很难确切地知道你所缺少的内容。根据我从你的问题中得到的结果,我创建了邮递员的屏幕截图,并标记了几个地方供你仔细检查。

确保您确实发送了POST请求。似乎可能因为它听起来像你的行动方法。

确保网址正确无误。与上面相同,似乎可能因为它听起来像你的动作方法。

确保您的身体是有效的JSON,并且它是作为JSON发送的。这是将内容类型设置为application / json。

正如Sandeep Kushwah指出,通过Fiddler检查实际请求可能是一个好主意。

postman snapshot