如何侦听SoapClient在请求期间发送给服务器的内容


How to listen what SoapClient sends to server during request?

我正在尝试调试通过SOAP向服务器发送请求的PHP脚本。我必须在SOAP请求消息中插入一个结构化变量,但我得到的错误是相当无用的错误消息,如"string":/

所以我想检查SoapClient类发送到服务器的原始请求。这里的"原始"是指需要传递XML字符串。就像<soapenv:Envelope ...>...<myVar>...</myVar>...</soapenv:Envelope> .

我该怎么做?我在Debian主机上运行脚本,所以我试着看netcat,但我在选项列表中找不到合适的东西。

有多种方法可以实现这一点,我认为"最原始"的方法是使用Wireshark等工具跟踪/查看网络流量。

请查看https://www.wireshark.org/docs/wsug_html_chunked/AppToolstcpdump.html,其中描述了如何跟踪linux系统上的网络流量并将其存储到一个文件中,您可以使用wireshark打开该文件并分析网络流量。

如果我没记错的话,这只有在两台主机之间有不安全的连接时才能完美地工作。

编辑

如果您只对请求XML感兴趣,php SOAP客户端有一个方法"__getLastRequest" http://php.net/manual/en/soapclient.getlastrequest.php