不使用代理客户端使用WCF服务

4

我有一个应用程序,可以发送SOAP消息并解析响应。如果使用代理客户端,我的WCF服务可以正常工作,但我需要能够只发送SOAP格式的POST请求,就像旧的ASMX服务一样。是否有可能实现这一点?

我尝试从调试WCF客户端复制SOAP请求,并将其作为Content-Type为text/xml的POST请求发送,但它没有给我正确的结果。


1
为什么你不使用RESTful服务?http://msdn.microsoft.com/zh-cn/magazine/dd315413.aspx - Reno
@Reno,RESTful服务支持SOAP格式吗?因为WebGet和WebInvoke属性支持XML和JSON请求/响应格式。 - Yaroslav
2个回答

5

是的,您可以使用“普通”的HTTP请求调用它们-毕竟,就服务器而言,它接收到的都是TCP连接中的字节。根据您使用的绑定方式,您可能还需要设置一些HTTP头 - 如果您在服务上使用BasicHttpBinding,则还需要设置SOAPAction头。尝试发送您的请求,以及使用WCF代理的客户端请求,并在诸如Fiddler之类的工具中进行比较。如果请求相同,服务器也会以相同的方式响应它们。


谢谢!我真的错过了SOAPAction头。该死,我浪费了3天时间来寻找解决方案) - Yaroslav

3
当我需要通过HTTP Web请求传递完整的SOAP消息时,我使用SoapUI。您可以提供WSDL文件,它会生成SOAP XML,就像代理为代码所做的一样。正如@carlosfigueira所提到的,您需要查看HTTP标头部分并适当设置它们。 www.soapui.org

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接