PHP soapClient和.net soap有什么区别?

时间:2014-10-17 07:59:57

标签: php web-services zend-framework soap wsdl

我在PHP中使用.NET Web服务时遇到问题。我尝试过使用内置的SoapClient和Zend Framework SoapClient。 当我使用CURL将消息作为XML发布到Web服务时,我得到了正确的响应。

<?xml version="1.0" encoding="utf-8"?>
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
        <soap12:Body>
             <Authenticate xmlns="http://xxxxx"></Authenticate>
        </soap12:Body>
    </soap12:Envelope>

但是当我尝试PHPs SoapClient或Zend Framework SoapClient时,它会创建以下信封,但这不起作用:

<?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://xxxxx">
        <env:Body>
            <ns1:Authenticate/>
        </env:Body>
    </env:Envelope>

我可以清楚地看到信封有所不同,但为什么呢? WSDL中指定的格式在哪里? 如何让PHP SoapClient创建具有正确XML格式的信封? 它不能这样,作为一个开发人员,我应该“猜测”web服务想要它的信封格式是什么? 这两个不同的SOAP信封叫做什么?

最后,这不是我第一次遇到这个问题。通常使用SoapClient,Zend SoapClient,NuSOAP或其他库中内置的PHP组合进行修复。但总是有这些SOAP战斗令人非常恼火。

0 个答案:

没有答案