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