HTTP通过PostAsJsonAsync发布多个对象

时间:2015-12-04 18:42:55

标签: c# post asp.net-web-api httpclient

我正在使用HttpClient和一些WebAPI。

我需要向POST发送多个对象,这里是我的Post方法的声明方式:

public string Post(Models.Client value, App.ControlCenter.Models.Company c) 
{
    ...
}

以下是我如何调用WebAPI:

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("http://localhost/");
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    var s = client
       .PostAsJsonAsync("api/Client/", c)
       .Result
       .Content.ReadAsAsync<App.ControlCenter.Models.RolDTO>().Result;
    return View();
}

我需要做的是发送Client对象和Company for Post方法。

1 个答案:

答案 0 :(得分:2)

客户端

您需要创建一个DTO类,其中包含两种类型的属性 Models.Client App.ControlCenter.Models.Company

string_input = "ABCDEFG";
string_output = take(string_input, length_input);

然后填充ComplexObject对象(即TComplexObject)并使用

public class DTO.ComplexObject  
{     
  public Models.Client tClientModel { get; set; }

  public App.ControlCenter.Models.Company tCompany{ get; set; }
}

API

HttpResponseMessage tResponse = tHttpClient.PostAsJsonAsync(url,TComplexObject).Result;