无法将数据发布到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上将数据发布到数据库。谢谢:)

+0

GermanCH,极好的主意之前字符串化的参数。阿里,第一步是建立基于邮差或Fiddler4,成功地击中了你的端点的HTTP POST请求。如果你不能这样做,也请发布您的产品类。一旦您使用这些工具之一成功构建了一个请求,就可以检查您的请求调用方法正在发送并查看其差异。 –

+0

感谢朋友!我应该从提琴手发送邮寄请求到我的API的实际地址它托管或本地主机?我尝试了它在本地主机,它工作得很好,并在本地数据库中发布数据。 –

+0

我试图发布数据来解决API托管的位置,但我得到了与控制台客户端应用程序相同的响应,即Error:400 Bad Request。 –

您收到了“错误的请求”响应,这意味着您在请求正文中发送的数据有问题。检查是否所有不可空属性正在发送。

此外,请检查“内容类型”标头in this answer的配置,如果发送的数据是好的,可能会造成麻烦。

我会尝试使用一些其他REST客户端作为Postman来检查请求的需求。

抱歉,把这个作为答案,我想只是发表评论,但我没有权限:(

+0

我尝试了以上两种方法,但都是徒劳的:(。请任何其他解决方案。 –

尝试通过参数的数据类型JObject的方法和类型转换到你所需要的对象/类。JSON。发送到控制器

[HttpPost] 
     public HttpResponseMessage Post([FromBody] JObject prod) {...}