2011-07-05 52 views
2

我正在使用RESTful方法构建webservice,并使用WCF WebHttp API(.NET v4)。 为了满足一些传统的功能,我需要接受通过POST和处理it..For例如我的方法之一,看起来原始XML消息,如:使用WCF WebHttp API实现服务中的POST方法获取原始xml

[WebInvoke(UriTemplate = "Hello", Method = "POST")] 
public Message ProcessMessage(string xmlMessage) 
{ 
    if (String.IsNullOrWhiteSpace(xmlMessage)) 
    { 
     return WebOperationContext.Current.CreateXmlResponse(ProcessingFailedReply); 
    } 
    var message = XElement.Parse(xmlMessage); 
    return WebOperationContext.Current.CreateXmlResponse(ProcessingSuccessfullReply); 
} 

然而,每次我尝试发布一些XML来“/你好“我收到一条消息,说这种格式是无效的,它需要特别编码的字符串。我猜API使用标准模式来自动序列化xmlMessage。当我访问的帮助(“/帮助”)我给出的例子格式为我xmlMessage:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">String content</string> 

如何允许并处理为原料在这种情况下张贴的要求吗? 我看了看API和唯一相关的类(WebOperationContext.Current.IncommingRequest)没有任何方法来检索原始消息...

感谢 Z ...

回答

3

创建输入XElement类型的参数,您可以以任何您想要的方式查询XML。

+0

我试过这个,但是当我发布它仍然告诉我我没有“正确”的格式... – zam6ak

+0

错误信息是什么?它应该只适用于任何有效的XML请求。 – Maurice

+0

我知道了......在客户端,你必须将内容类型设置为“text/xml”...没有它,它不工作... – zam6ak