使用Rest Sharp在休息主体中发布XML

时间:2012-11-21 13:57:41

标签: c# xml restsharp

我在尝试使用Rest Sharp进行POST时遇到问题。我正在尝试调用一个不完全符合现代标准的Web服务,我需要能够在我的帖子中发布请求XML。

如果我只是在RestRequest对象上执行request.AddBody(xmlObject),则会将一个名为text / xml的参数添加到请求中。在这种情况下,我收到来自服务器的错误响应,说"抛出异常:prolog"中不允许内容。这告诉我服务器正在尝试处理参数的键(text / xml =)以及值。

当我在chrome中使用带有所需xml请求的REST控制台时,一切都按预期工作。

关于如何使用Rest Sharp工作的任何想法?

编辑:看起来我需要使用request.AddFile(" name",bytes_to_add," file_name")。但是,当我尝试这样做时,我得到一个异常(" System.InvalidOperationException:写入开始后无法设置此属性。"),它看起来像带有RestSharp的issue从未解决过。我可能只需要使用HttpWebRequest库发出请求。

1 个答案:

答案 0 :(得分:1)

你可能会过度思考它。 RestSharp.AddBody将对象作为参数,并使用JSON或XML序列化程序自动将其序列化为正确的格式,具体取决于RequestFormat属性。

直接添加XML没有意义。 REST的一部分神奇之处在于它支持多种格式,而不仅仅是XML。 RestSharp就是为此而编写的,因此它的所有公共接口都只使用POCO。

简单的解决方案就是不对序列化对象。您不想添加xmlObject,只需将真正的C#对象传递给AddBody方法,然后让它处理序列化。

相关问题