0
A
回答
2
我通過擴展SoapClient和覆蓋方法如_soapcall()和_doRequest()來調試SoapClient。在我的項目中,我有一個將XML /參數寫入文件的記錄器。
我的例子包括_ 的SOAPCall()和 _doRequest()。我用兩種方法打印出不同的東西。可能適合您的調試需求。我喜歡閱讀__soapCall()的$ args輸出,並喜歡將XML複製到SoapUI進行驗證(Alt + V)。如果您正在調試身份驗證或其他錯誤情況,HTTP標頭也可能會很有趣。
class MySoapClient extends SoapClient {
public function __soapCall ($function_name, array $args, array $options = null, $input_headers = null, array &$output_headers = null) {
// Dump $args to file, browser printout, console, etc
var_dump($args);
parent::__soapCall ($function_name, $args, $options, $input_headers, $output_headers);
// XML request and response:
var_dump($this->__getLastRequest()); // Request sent to server
var_dump($this->__getLastResponse()); // Response from server
// HTTP headers:
var_dump($this->__getLastRequestHeaders());
var_dump($this->__getLastResponseHeaders());
}
public function __doRequest (string $request , string $location , string $action , int $version, int $one_way = 0) {
var_dump($request); // XML
$response = parent::__doRequest ($request, $location, $action, $version, $one_way);
var_dump($response); // XML
return $response;
}
}
$webservice = new MySoapClient('http://example.com/myservice?wsdl');
$webservice->__soapCall('SomeOperation', array($someArguments));
記錄器可以用來代替對的var_dump:
logger('debug', $this->__getLastRequest());
相關問題
- 1. 捕獲傳出的HTTP請求服務
- 2. Soapclient https請求
- 3. 使用ETW捕獲傳入的HTTP請求和傳出的HTTP請求
- 4. 捕獲傳入和傳出的SOAP請求
- 5. Yii - 捕獲所有傳入的請求
- 6. 如何捕獲獲取請求事件?
- 7. 如何轉儲SoapClient調試請求?
- 8. PHP SoapClient的,以XML請求
- 9. 如何獲取SoapClient使用的http請求標頭?
- 10. 如何將數組作爲值傳入PHP soapclient請求?
- 11. 從Windows Phone應用程序中捕獲傳出的HTTP請求
- 12. 捕獲HTTP請求
- 13. 捕獲PHP請求
- 14. 捕獲DNS請求
- 15. soapclient請求不完整
- 16. SoapClient不顯示XML請求
- 17. PHP SOAPClient請求問題
- 18. 如何在mozswing中捕獲請求?
- 19. 如何在JavaScript中捕獲請求?
- 20. 如何在使用Apache發出http請求時捕獲InterruptedException?
- 21. 如何加密傳出的https請求
- 22. 請求捕獲像requestbin PHP
- 23. chrome.webRequest.onBeforeRequest捕獲AngularJS XHR請求
- 24. SoapClient不會生成正確的請求
- 25. SOAP請求與PHP SoapClient的(嵌套頭)
- 26. 存儲SoapClient的下一個請求 - php
- 27. 創建一個PHP SoapClient的請求
- 28. 如何從CloudKit請求獲取傳出的JSON?
- 29. 在我的soapclient中捕獲異常
- 30. 如果VCR捕獲JavaScript請求以及?
對於我的生活,我想不通爲什麼我不能覆蓋__soapCall。我定義了你提供的函數,但它沒有被拾取。 –