C#webservice如何将多个参数发送到POST操作

时间:2016-07-15 10:18:39

标签: c# web service

我在VS 2015,.NET 4.5.2和Web API 2中使用C# 我想建立一个宁静的网络服务。

我需要使用CURL或Fiddler来测试web服务(不是AJAX或Jquery)。
如果可能的话,我更喜欢CURL
我成功地使用CURL向Web服务发送GET请求。
但我还需要使用POST发送数据到Web服务
不幸的是我使用POST时遇到问题。

我不仅需要发送1个参数,还需要发送多个参数 (基本上我需要发送一个将添加到数据库的完整记录)

似乎无法向POST操作发送多个参数?
但是,我应该能够使用数组或List对象发送记录数据,而不是发送多个参数?
我应该如何在Web服务控制器中编写POST操作? 我应该如何使用CURL(或fiddler)发送数据,以便POST操作可以处理它?
我看到一些使用URI来POST数据的例子......但是使用URI似乎需要设置内容长度? 如果可能的话,我会避免设置内容长度

型号:
该模型表示应使用POST发送的数据:

public class Product
{
public int      Id       { get; set; }
public string   Name     { get; set; }
public string   Category { get; set; }
public decimal  Price    { get; set; }
}



客户端:
客户端(CURL / fiddler)必须能够发送模型数据,例如:

ID = 5
名称=“测试”
类别=“硬件”
价格= 10

如何使用CURL(或fiddler)发送此数据?


控制器操作:
我该怎么编码这个动作?
这可以吗? :

[HttpPost]
public void AddProduct([FromBody] List<Product> data )
{
 Do something
}


webervice网址
只是为了完整性:
我的网络服务URL如下所示 http://myServer/api/product

1 个答案:

答案 0 :(得分:0)

添加此类内容。创建一个包装类,然后将其发送到POST。

game.player.number

而不是你可以做的是 - 创造一个类

[HttpPost]
public void AddProduct(List<Product> data )
{
 Do something
}

然后使用

class Wrapper{
List<Product> data
}

这会奏效。如果不行,请告诉我。我会尽力为您提供解决方案。对我来说,这在我遇到问题时起作用。