传递类的列表类型作为HttpWebRequest的参数来使用Web API

本文关键字:参数 Web HttpWebRequest API 列表 类型 | 更新日期: 2023-09-27 18:15:50

我在框架4中开发了Web API,代码如下

[HttpPost]
        public string ValidateData(List<MsrValidateData> data)
        {
            return _repository.ValidateAllData(data);
        }

现在我想在asp.net web表单服务器端使用它我如何使用HttpWebRequest来发布列表类型的数据

我像这样使用

System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url);
        req.ContentType = "application/json";
        req.Method = "POST";

但是我如何将列表类型的数据作为参数传递给请求?

传递类的列表类型作为HttpWebRequest的参数来使用Web API

您还没有共享您的类MsrValidateData的结构,所以我使用field1和field2为其字段。请替换字段1 &使用MsrValidateData类的实际字段field2,并将数据添加到您的请求中,如下所示:

    System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url);
    req.ContentType = "application/json";
    req.Method = "POST";
    string postData = @"
        {
            'Data':
            [
                { 'field1': 'value11', 'field2': 'value12' },
                { 'field1': 'value11', 'field2': 'value12' },
                { 'field1': 'value11', 'field2': 'value12' }
            ]
        }";
    byte[] byteArray = Encoding.UTF8.GetBytes(postData);
    req.ContentLength = byteArray.Length;
    System.IO.Stream dataStream = req.GetRequestStream();
    dataStream.Write(byteArray, 0, byteArray.Length);
    dataStream.Close();

创建新类ListMsrValidateData:

public class ListMsrValidateData
{
    public List<MsrValidateData> Data { get; set; }
}

修改ValidateData方法,如下所示:

    [HttpPost]
    public string ValidateData([FromBody] ListMsrValidateData data)
    {
        return _repository.ValidateAllData(data);
    }