[英]Post a collection to ASP.NET WEB API
我应该如何将对象集合发布到WEB API Rest服务?
这就是我的休息服务。
我正在使用XmlSerializer
这是ActionMethod
public class DevicesController : ApiController
{
[HttpPost]
public void PushToDb([FromBody] device[] devices)
{
var iCount = devices.Count();
...
...
}
这是设备DTO:
public class device
{
public string serialnumber { get; set; }
public string hw_part_id { get; set; }
}
这是请求:
HTTP://本地主机:50384 / API /设备/ PushToDb
和XML输入
<devices>
<device
<serialnumber>1</serialnumber>
<hw_part_id>A</hw_part_id>
</device>
<device>
<serialnumber>2</serialnumber>
<hw_part_id>A</hw_part_id>
</device>
</devices>
Content-Type设置为application / xml。
当我发送此Post请求时,设备始终为null。 但是,如果我将Action方法更改为仅接受一台设备,则可以通过Action方法接收设备数据。 仅当我传递集合时,我才能在Action方法中接收输入。 我想念什么吗? 我应该怎么做才能将集合(XML输入)发布到ASP.NET Rest服务?
提前致谢。
抹布
如评论中所述,用这种方式装饰您的班级
[DataContract]
public class device
{
[DataMember]
public string serialnumber { get; set; }
[DataMember]
public string hw_part_id { get; set; }
}
然后使用newtonsoft (或任何其他库)将device
类型的数组序列化为json。 并以这种方式使用System.Net.WebClient
:
using (WebClient client = new WebClient())
{
client.Headers[HttpRequestHeader.ContentType] = "application/json";
var jsonObj = JsonConvert.SerializeObject(yourArray); //yourArray is a device[]
client.UploadString(ApiServiceUrl, jsonObj);
}
亲爱的下班休息一下,观看此MVA课程 ,它一定会解决您的问题
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.