Android 将变量传递给IHttpActionResult方法
我想在android中使用WebApi,如下所示(在NewProductActivity.java中): 当我在Fiddler中测试POST的api时,我得到一个405状态代码。我尝试使用:Android 将变量传递给IHttpActionResult方法,android,asp.net-web-api,entity-framework-6,jsonhttpclient,Android,Asp.net Web Api,Entity Framework 6,Jsonhttpclient,我想在android中使用WebApi,如下所示(在NewProductActivity.java中): 当我在Fiddler中测试POST的api时,我得到一个405状态代码。我尝试使用: //[Route("api/products/{name}/{price}/{description}")] // POST: api/Products [HttpPost] //[ResponseType(typeof(Product))] public IHttp
//[Route("api/products/{name}/{price}/{description}")]
// POST: api/Products
[HttpPost]
//[ResponseType(typeof(Product))]
public IHttpActionResult PostProduct(string name, decimal price, string description)
{
以及下面示例im()中的原始实现,但我仍然得到了405:
[HttpPost]
//[ResponseType(typeof(Product))]
public Product Post(string name, decimal price, string description)
{
Product product = new Product()
{
Name = name,
Price = price,
Description = description
};
如果您想发布到MVC控制器,我会这样做: 使用以下属性创建复杂模型(类):
class MyRequest{
public string name {get;set};
public decimal price{get;set};
public string description{get;set};
}
public Product Post(MyRequest request)
并按如下方式更改控制器:
class MyRequest{
public string name {get;set};
public decimal price{get;set};
public string description{get;set};
}
public Product Post(MyRequest request)
别忘了更改您的android代码,以便它发送复杂的对象。我首先使用EF数据库,所以我已经有了一个Product.cs类,其中定义了名称、价格和描述。我有点不知所措,我是否应该添加另一个类MyRequest,按照您的建议使用变量名称。我是否应该像这里这样做是的。或者,您可以重用现有的产品模型,如果是较小的项目,我将重用相同的模型,如果不是,我将创建特殊的RequestDTO对象。在我看来,这是最好的做法,因为你们可以发送一些其他的,而不仅仅是产品。