我正在构建基于W3C规范的WCF服务,该规范定义了一个接受"application/x-www-form-urlencoded"发布数据的RESTful Web服务端点.默认情况下,WCF不支持这种类型的消息编码,我发现了许多创建合同的不同示例,如下所示:
XElement Query_Post(Stream postData);
然后在实现中postData
使用该HttpUtility.ParseQueryString
方法解码流.
有没有人知道在WCF中支持"application/x-www-form-urlencoded"的更强类型的方式?
我希望我的运营合同是:
XElement Query_Post(string query, string [] params);
Eugene Yokot.. 7
最好的办法是使用Stream
像原始HTTP POST与WCF和你说的话.原因是因为WCF从服务代码中抽象出所有通信级物理布局.理想情况下,您只想通过翻转开关来创建可以变成SOAP或REST的服务.
要本机支持它,您可能必须扩展WebHttpBinding
或制作自己的绑定并实现自定义编码器.这与输出对称,就像链接的帖子所说的那样.你必须扭转它的武器,让WCF输出非XML/JSON的东西.
最好的办法是使用Stream
像原始HTTP POST与WCF和你说的话.原因是因为WCF从服务代码中抽象出所有通信级物理布局.理想情况下,您只想通过翻转开关来创建可以变成SOAP或REST的服务.
要本机支持它,您可能必须扩展WebHttpBinding
或制作自己的绑定并实现自定义编码器.这与输出对称,就像链接的帖子所说的那样.你必须扭转它的武器,让WCF输出非XML/JSON的东西.