【发布时间】:2010-12-10 05:32:45
【问题描述】:
问题: 有没有办法在实际发送请求之前查看使用 PHP SoapClient 函数调用创建的 XML?
背景:
我是 WSDL 通信的新手,我有一个客户希望我用 PHP 进行开发,这是一种与用 ASP.NET 编写的 WSDL 服务进行通信的方法。我已经走了很远,但是在传递复杂类型时遇到了问题。到目前为止,我已经尝试了几种不同的方法。
1) 设置单个数组如$params->Person->name$params->Person->address
2) 设置单个数组$Person = array('name'=>"joe",'address' = "123");
然后作为参数 "Person" => $Person; 传递给调用 和其他一些人。但是每次我得到错误
SoapException:服务器无法 处理请求---> System.Exception: 人是必需的。在服务名称处。
为了进一步排除故障,我想查看正在发送的 XML 文档,以查看它是否正在按照我期望的方式创建复杂类型。
我正在使用$client = new SoapClient('wsdldoc.asmx?WSDL'); 创建服务,并使用$client->CreateUser($params); 调用它,然后尝试使用函数$client->__getLastRequest(); 查看它,但它从未到达__getLastRequest,因为它在调用CreateUser($params) 时遇到致命错误。
问题又来了: 有什么方法可以查看由 CreateUser($params) 调用创建的 XML,而无需实际发送它并导致致命错误
【问题讨论】:
标签: php xml soap soap-client