C#HTTP帖子,如何发布List <xx>参数?</xx>

时间:2015-01-20 10:19:08

标签: c# post webclient

using (WebClient wc = new WebClient())
{
    wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
    string HtmlResult = wc.UploadString(url, "sign=fsadfasdf&charset=utf-8");
}

服务器可以获得sign和charset的值。

但是还有第三个参数LIST,它是一个对象列表(该对象是一个实体类)。 如何将此参数传递给服务器?

我尝试使用"sign=fsadfasdf&charset=hhh&list=" + Json(list)作为postData(将List转换为json字符串)。但是服务器没有得到这个列表参数的价值。

1 个答案:

答案 0 :(得分:1)

我讨厌发布带有链接的1行答案,但这在此之前已经解决了......

POSTing JsonObject With HttpClient From Web API

HttpClient类旨在解决这个问题,我相信它在nuget包“Microsoft.AspNet.WebApi.Client”中找到,这应该将命名空间“System.Net.Http”添加到你的项目中。

它还面向完全异步,对你的服务器应该更好!

编辑: 要发布一个数组/集合,你会做这样的事情......

var myObject = (dynamic)new JsonObject();
myObject.List = new List<T>();
// add items to your list

httpClient.Post(
    "",
    new StringContent(
        myObject.ToString(),
        Encoding.UTF8,
        "application/json"));