在我尝试使用内部NameValueCollection初始化NameValueCollection之后,c#编译器说必须是NameValueCollection(string,string)。
正如我想的那样,当我像这样初始化时调用Add函数。
基于NameValueCollection,我是否可以在一行初始化相同的方法?
原因是我必须将数据POST到HTTPAddress并使用此function
这是我的例子,不起作用:
NameValueCollection data = new NameValueCollection()
{
{ "key1", "value1"},
{ "key2", new NameValueCollection()
{
{ "key2sub", "value"}
}
};
答案 0 :(得分:1)
不是真的。UploadValues(..)
方法只需NameValueCollection
,而NameValueCollection
只接受string
。
该方法的目的是转换您的数据......
UploadValues("http://www.example.com/", new NameValueCollection()
{
{ "key1", "value1" },
{ "key2", "value2" }
};
...进入网址:
http://www.example.com/?key1=value1&key2=value2
如果您想发送更多信息,可以将分隔的字符串作为其中一个键的值,然后在另一端再分开。
UploadValues("http://www.example.com/", new NameValueCollection()
{
{ "key1", "value1" },
{ "key2", "value2,value3,value4" }
};
哪个应该产生类似的东西:
http://www.example.com/?key1=value1&key2=value2,value3,value4
但最好的解决方案是@hmnzr said in their answer(现已删除),以完全避免NameValueCollection
并使用UploadString(..)
方法上传序列化为JSON的自定义对象。