繁体   English   中英

通过类的列表类型作为HttpWebRequest中的参数来使用Web API

[英]pass list type of class as parameter in HttpWebRequest to consume Web API

我在框架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";

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

您尚未共享类MsrValidateData的结构,因此我将field1和field2用于其字段。 请用您的MsrValidateData类的实际字段替换field1和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);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM