使用相同键的c# WebRequest Post数组
本文关键字:WebRequest Post 数组 | 更新日期: 2023-09-27 18:17:10
我需要将数据发布到REST服务,它需要接受诸如
这样的发布数据profile=high&profile=low
我正在做这个:
Dictionary<string, string> postData = new Dictionary<string, string>();
postData.Add("source=", streamSource);
postData.Add("ipvs=", "false");
postData.Add("stream=", string.Empty);
postData.Add("output=", "high");
postData.Add("framerateDivider=", "1");
postData.Add("resolution=", "1");
postData.Add("profile=", "high");
postData.Add("&output=", "low");
postData.Add("&framerateDivider=", "1");
postData.Add("&resolution=", "1");
postData.Add("ipvsProfile=", "high");
postData.Add("ipvsTitle=", string.Empty);
postData.Add("ipvsDescription=", string.Empty);
postData.Add("ipvsTagName=", string.Empty);
postData.Add("ipvsTagValue=", string.Empty);
using (Stream stream = request.GetRequestStream())
{
using (var writer = new StreamWriter(stream))
{
foreach (KeyValuePair<string, string> data in postData)
{
if (data.Key.StartsWith("&"))
{
writer.Write(data.Key.Substring(1), data.Value);
}
else
{
writer.Write(data.Key + data.Value);
}
}
writer.Close();
}
stream.Close();
}
我从服务返回一个409冲突,并查看它需要的日志,它缺少第二个配置文件键。
是否有另一种方法来发布数据使用WebRequest?
欢呼。
不应该是writer.Write(data.Key + "=" + data.Value);
很难说,因为我们不知道你的KeyValuePair是什么样子的
我将字典更改为Tuple列表,以避免重复键…这不是真正的问题。409是由于标题中自定义了Content-Type。