发送列表时的'`'字符和RestSharp请求体

时间:2013-08-20 10:14:45

标签: c# asp.net generics serialization restsharp

我正在尝试使用RestSharp向我的实体发布请求。

但我收到错误:

"System.Xml.XmlException : The '`' character, hexadecimal value 0x60, 
cannot be included in a name."

我将列表放在查询正文中。

var strList = new List<string>();
      strList.Add("one");
      strList.Add("two");

restRequest.AddBody(strList);

似乎它不喜欢通用序列化的方式。 有没有建议如何将列表传递给请求?

3 个答案:

答案 0 :(得分:7)

添加: restRequest.RequestFormat = DataFormat.Json 的: restRequest.AddBody(strList);

答案 1 :(得分:4)

您可以使用Server.HtmlEncode对字符进行编码并稍后进行解码。

答案 2 :(得分:0)

在106.6.x版以上,即使RequestFormat设置为Json,AddBody()方法也不再适用于Json。另外,AddBody()方法被标记为已描述,建议将其更改为AddXmlBody(),该方法也不起作用(抛出相同的异常)。

虽然解决方案非常简单:而是调用AddJsonBody(),但一切正常。