大家好,我是Asp.net Web API的新手,我有问题post data using asp.net Web API并接受了我的回答。
这是我想在Postman中发布带有一些标题值的数据的同一问题的扩展,我的代码如下
public HttpResponseMessage PostCustomer([FromBody] NewUser userData, string devideId)
{
//My code
return response;
}
当我在Postman中以JSON格式在BODY中传递值时,我得到了如下消息
找不到与请求URI匹配的HTTP资源 在与该请求匹配的控制器上未找到任何操作。
请帮帮我。
答案 0 :(得分:1)
您的行为似乎已添加了一些额外的devideId
字符串参数。在发出请求时,请确保您将其作为查询字符串提供给它:
POST http://localhost:58626/api/customers?devideId=foo_bar
如果您不想要使此参数成为必需,那么您应该将其设为可选(根据.NET中的可选方法参数):
public HttpResponseMessage PostCustomer([FromBody] NewUser userData, string devideId = null)
{
...
}
现在您可以POST http://localhost:58626/api/customers
而不提供此参数的值。
备注:您不需要使用NewUser
属性修饰复杂对象类型(例如[FromBody]
)。这是Web API中的默认行为。
更新:以下是您如何阅读自定义标题:
public HttpResponseMessage PostCustomer(NewUser userData)
{
IEnumerable<string> values;
if (this.Request.Headers.TryGetValues("X-MyHeader", out values))
{
string headerValue = values.FirstOrDefault();
}
...
return response;
}