PHP SOAP客户端和命名空间

时间:2015-08-26 11:16:41

标签: php soap namespaces

我可以将以下xml文件发布到Web服务,我得到的响应ID是我期待的。

<Envelope xmlns="http://www.w3.org/2003/05/soap-envelope">
    <Body>
    <logon xmlns="http://tempuri.org/">
        <username>USRNAME</username>
        <password>b5059e852207a</password>
      </logon>
    </Body>
</Envelope>

我现在正在尝试将其转换为使用PHP SOAP客户端。我拨打以下电话

$soapclient = new SoapClient('http://*********.co.uk/ws-b/WebservicesPTP.asmx?wsdl');

我可以获得一系列功能:

$functions = $soapclient->__getFunctions();

但是当我尝试使用登录方法时:

$params = array('username' => 'USRNAME', 'password' => 'b5059e852207a');
$response = $soapclient->logon($params);

我根本得不到任何回报。

我怀疑它与命名空间有关,但我在信封上有两个,登录时有一个。我是否需要这些,如果需要,我如何将这些添加到SOAP客户端?

修改 我收到以下PHP错误:

PHP Fatal error:  Uncaught SoapFault exception: [soap:Server] rt.exception.RTException: Object reference not set to an instance of an object

1 个答案:

答案 0 :(得分:0)

感谢Piotr Olaszewski。终于搞定了这个。问题不是名字,而只是一个缺失的会议&#39;登录方法的参数。令人失望的是,这导致呼叫失败,因此我无法使用_getLastRequest方法。