2014-03-03 75 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

相關問題