我有一个可以发送 SOAP 消息和解析响应的应用程序。如果我使用代理客户端,我的 WCF 服务可以正常工作,但我需要能够像在旧的 ASMX 服务中那样以 SOAP 格式发送 POST 请求。有没有可能做到这一点?
我尝试从调试 wcf 客户端复制 SOAP 请求并将其作为带有 Content-Type text/xml 的 POST 请求发送,但它没有给我正确的结果。
我有一个可以发送 SOAP 消息和解析响应的应用程序。如果我使用代理客户端,我的 WCF 服务可以正常工作,但我需要能够像在旧的 ASMX 服务中那样以 SOAP 格式发送 POST 请求。有没有可能做到这一点?
我尝试从调试 wcf 客户端复制 SOAP 请求并将其作为带有 Content-Type text/xml 的 POST 请求发送,但它没有给我正确的结果。
是的,您可以使用“普通”HTTP 请求来调用它们——毕竟,就服务器而言,它接收到的只是 TCP 连接中的字节。根据您使用的绑定,您可能还需要设置一些 HTTP 标头 - 如果您在服务上使用 BasicHttpBinding,您还需要设置SOAPAction
标头。尝试使用 WCF 代理发送您的请求和来自客户端的请求,并在 Fiddler 等工具中进行比较。如果请求相同,服务器也会以相同的方式响应它们。
当我需要通过http web 请求传递完整的soap 消息时,我使用SoapUI。您可以给它一个 WSDL,它执行代理对代码执行的操作,而是生成soap xml。正如@carlosfigueira 所提到的,您将需要查看 HTTP 标头部分并适当地设置它们。