Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在SOAP调用之前获取SOAP XML?_Php_Soap - Fatal编程技术网

Php 在SOAP调用之前获取SOAP XML?

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

在将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或某个其他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