无法将数据发布到Microsoft Azure上托管的Asp.Net Web API
我已经编写了一个Asp.Net web api,其中我写了放,发布,获取和删除以在Sql azure数据库中执行crud。数据库和API都在Microsoft Azure上运行。我成功地能够调用GET控制器并在浏览器中获取数据。当我尝试通过控制台应用程序发布硬编码数据给它时,它什么都不做(既不会给出错误也不会例外)。下面是Web API控制器:无法将数据发布到Microsoft Azure上托管的Asp.Net Web API
public HttpResponseMessage Post([FromBody] Product prod)
{
try
{
se.Products.Add(prod);
se.SaveChanges();
var message = Request.CreateResponse(HttpStatusCode.Created, prod);
message.Headers.Location = new Uri(Request.RequestUri + prod.Product_ID.ToString());
return message;
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
}
}
Method from the client console app to send data is shown in this picture
我试图通过把一个断点response.Response检查这种方法在里面什么都没有,但是显示出错误的请求。 Here is the screenshot to it.
请帮助我如何成功地通过web api托管在Azure上将数据发布到数据库。谢谢:)
您收到了“错误的请求”响应,这意味着您在请求正文中发送的数据有问题。检查是否所有不可空属性正在发送。
此外,请检查“内容类型”标头in this answer的配置,如果发送的数据是好的,可能会造成麻烦。
我会尝试使用一些其他REST客户端作为Postman来检查请求的需求。
抱歉,把这个作为答案,我想只是发表评论,但我没有权限:(
我尝试了以上两种方法,但都是徒劳的:(。请任何其他解决方案。 –
尝试通过参数的数据类型JObject的方法和类型转换到你所需要的对象/类。JSON。发送到控制器
[HttpPost]
public HttpResponseMessage Post([FromBody] JObject prod) {...}
GermanCH,极好的主意之前字符串化的参数。阿里,第一步是建立基于邮差或Fiddler4,成功地击中了你的端点的HTTP POST请求。如果你不能这样做,也请发布您的产品类。一旦您使用这些工具之一成功构建了一个请求,就可以检查您的请求调用方法正在发送并查看其差异。 –
感谢朋友!我应该从提琴手发送邮寄请求到我的API的实际地址它托管或本地主机?我尝试了它在本地主机,它工作得很好,并在本地数据库中发布数据。 –
我试图发布数据来解决API托管的位置,但我得到了与控制台客户端应用程序相同的响应,即Error:400 Bad Request。 –