使用ASP.NET WebAPI发布复杂对象

Qua*_*yen 1 c# asp.net-web-api

我如何使用WebClientobject发送这样的POST请求:

public static void SaveOrUpdateEntity(string url, object data)
{
    using (var client = new WebClient())
    {
        // TODO
    }
}
Run Code Online (Sandbox Code Playgroud)

data是一个Person对象.

这是控制器方法

[HttpPost]
public void Post([FromBody]Person person)
{
    VeranaWebService.SaveOrUpdatePerson(person);
}
Run Code Online (Sandbox Code Playgroud)

Person班级

public class Person
{
    public string Name { get; set; }
    public string FirstName { get; set; }
    public DateTime? BirthDate { get; set; }
    public byte[] Photo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*und 5

您可以使用Newtonsoft.Json,它将帮助您将数据序列化为json对象.它可以像这样使用

using Newtonsoft.Json;

public static void SaveOrUpdateEntity(string url, object data)
{    
    var dataString = JsonConvert.SerializeObject(data);

    using (var client = new WebClient())
    {
        client.Headers.Add(HttpRequestHeader.ContentType, "application/json");
        response = client.UploadString(new Uri(url), "POST", dataString);
    }
}
Run Code Online (Sandbox Code Playgroud)

要了解有关newtonsoft库的更多信息,请阅读此处