C# Web 服务如何将多个参数发送到 POST 操作

本文关键字:参数 操作 POST 服务 Web | 更新日期: 2023-09-27 17:57:02

我将C#与VS 2015,.NET 4.5.2和Web API 2
一起使用我想建立一个安静的网络服务。

我需要使用 CURL 或 Fiddler 来测试 Web 服务(而不是 AJAX 或 Jquery)。
如果可能的话,我更喜欢 CURL。

我成功地使用 CURL 将 GET 请求发送到网络服务。
但我还需要使用 POST
将数据发送到网络服务
不幸的是,我在使用开机自检时遇到问题。

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

似乎无法向 POST 操作发送多个参数?
但是,我应该能够使用数组或List对象发送记录数据,而不是发送多个参数?

我应该如何在 Web 服务控制器中对 POST 操作进行编码?
我应该如何使用 CURL(或小提琴手)发送数据,以便 POST 操作可以处理它?

我看到一些使用 URI 发布数据的示例......但是使用 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/提琴手)必须能够发送模型数据,例如:

id=5
名称="测试"
类别="硬件"
价格=10

如何使用 CURL(或小提琴手)发送此数据?


控制器操作:
我应该如何编写此操作?
谁可以吗?:

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


韦伯维采网址
只是为了完整起见:
我的网络服务 URL 如下所示

http://myServer/api/product

C# Web 服务如何将多个参数发送到 POST 操作

用于添加这种东西.创建一个包装类,然后将其发送到 POST。

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

取而代之的是 - 做一个类

class Wrapper{
List<Product> data
}

,然后使用

 [HttpPost]
    public void AddProduct(Wrapper data )
    {
     Do something
    }

这将工作.如果不起作用,请告诉我.我会尽力为您提供解决方案.对我来说,当我遇到问题时,这有效.