2014-03-03 62 views
0

我正在将一堆PHP代码迁移到新的服务器上。该代码用于向远程服务器发送SOAP调用以推送和拉取信息(数据库同步)。我已经确定了许多需要更新的脚本,但不能100%确定我拥有了所有的东西,开发这些东西的人不再在公司工作。有没有办法捕获所有出站肥皂请求?

我的问题是,有没有一种方法来捕获和记录来自服务器的所有SOAP请求?通过这种方式,我将能够精确地确定正在运行的是什么。也许打开PHP SoapClient构造函数的日志记录?我无法找到办法做到这一点。如果不是,Apache服务器(LAMP栈[CentOS 6.5])或服务器上运行的其他服务可以执行此操作吗?

在此先感谢。

回答

0

您可以使用SoapClient :: _ getLastRequest()和SoapClient :: _getLastResponse(),然后使用error_log或另一个日志平台记录输出。

然后,您可以使用像SoapUI这样的工具手动向服务器发送请求,这有助于调试请求。

您需要在构造函数的选项数组中将'trace'设置为true以启用这些方法。

http://au1.php.net/manual/en/soapclient.getlastrequest.php http://au1.php.net/manual/en/soapclient.getlastresponse.php

+0

谢谢,但这将是为每个单独的请求,我相信。我需要的是我可以在服务器范围内启用的“交换机”,记录每个请求,以便我稍后返回并查看。原因是我不知道所有的脚本位置以及什么时候正在运行。 – tatorface

+0

你不能用SoapClient本地执行此操作。解决此问题的一种方法是扩展SoapClient,然后覆盖应用程序调用的方法,并使用_ :: getLastRequest()/ __ getLastResponse()以及parent :: <使用参数重写的函数的名称> 。一些重构可能会使您的应用程序使用您的自定义SoapClient而不是默认的。 – aussieguy123

相关问题