Php 在SOAP调用之前获取SOAP XML?
在将SOAP客户端生成的XML发送到webservice之前,是否可以获取该XML 我之所以需要它,是因为来自webservice的响应如果其中一个参数真的错了,我会得到如下错误Php 在SOAP调用之前获取SOAP XML?,php,soap,Php,Soap,在将SOAP客户端生成的XML发送到webservice之前,是否可以获取该XML 我之所以需要它,是因为来自webservice的响应如果其中一个参数真的错了,我会得到如下错误 Server was unable to read request. ---> There is an error in XML document (2, 408). ---> Input string was not in a correct format. 这通常包括启动tcpmon或某个其他tc
Server was unable to read request.
---> There is an error in XML document (2, 408).
---> Input string was not in a correct format.
这通常包括启动tcpmon或某个其他tcp观察器实用程序,捕获webservice调用,将xml复制并粘贴到文本编辑器,然后转到第408列以查看问题所在
我真的想通过在发送XML之前获取XML来简化这个过程。要做到这一点非常非常困难(几乎不可能)。更简单的是使用SoapClient
class'内置调试功能在发送请求后输出请求。您可以这样做:
首先,在创建SOAPClient时,启用跟踪,如下所示:
$client = new SoapClient($wsdl, array('trace' => true));
然后做任何必要的处理来准备进行SOAP调用并使其成功。一旦发出请求,以下内容将为您提供您刚刚发送的请求:
echo("<pre>"); //to format it legibly on your screen
var_dump($client->__getLastRequestHeaders()); //the headers of your last request
var_dump($client->__getLastRequest()); //your last request
发送请求后获得该信息对我也很有用:)谢谢,实际上您可以不发送即可查看该请求:
var_dump($client->__getLastResponseHeaders()); //response headers
var_dump($client->__getLastResponse()); //the response