C# HTTP post ,如何 post 与 List<XX> 参数?

C# HTTP post , how to post with List<XX> parameter?

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

服务器可以获取符号和字符集的值。

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

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

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

HttpClient class 正是为了解决这个问题而设计的,我相信它可以在 nuget 包 "Microsoft.AspNet.WebApi.Client" 中找到,这应该将命名空间 "System.Net.Http" 添加到您的项目中。

它还适合完全异步,这对您的服务器来说应该更好!

编辑: 对于 post 一个数组/集合,你会做这样的事情......

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"));