2012-03-16 130 views
7

我試圖得到XML請求:getLastRequest爲什麼不返回任何東西?

$cgProxy = new SoapClient($WSDL_URL,array('trace' => 1)); 

try { 
     $result = $cgProxy->OrderCreate($cgOrder); 

} catch (SoapFault $exc) { 
     var_dump($exc); 
     echo "Request:\n" . $cgProxy->__getLastRequest(), "\n"; 
     echo "Response:\n" . $cgProxy->__getLastResponse() . "\n"; 
} 

有了這個我從$ EXC轉儲SOAP服務器錯誤。但getLastRequest似乎沒有返回任何東西。有什麼想法嗎?

我也試過用htmlspecialchars()和htmlentities()沒有成功。 。 。

+0

你有沒有解決這個問題?我也有一種情況,我發送一個參數數組,然而__getLastResponse()顯示沒有參數被傳遞的空SOAP包裝。 – TonyTheJet 2012-08-01 21:41:24

+0

我有同樣的問題,沒有顯示任何內容。我在頁面的源代碼中找到了響應(通過瀏覽器上下文菜單打開它)。 – 2014-11-19 14:43:34

回答

11

getLastRequest()

只有當SoapClient的對象被設置爲TRUE跟蹤選項創建此方法。

$client = new SoapClient("http://myservice/?WSDL",array("trace"=>1)); 

在這種情況下適用於我。

+0

我也有這個問題,我確實有跟蹤啓用,所以這不能解決問題。 – SublymeRick 2013-10-15 20:46:05

+0

正確的,問題存在於我跟蹤設置爲true,正如我在我原來的帖子中所示。 – evan 2014-11-19 18:28:32

3

也許是因爲瀏覽器中的XML不能以字符串形式打印。 如果是這樣,嘗試這樣的事情:

echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n"; 
+0

沒有幫助我,但高清值得檢查/意識到這是一種可能性。 – johnsnails 2016-12-10 04:58:25

1

我知道這是遲到了,但......

其可能你從來沒有真正發出請求。如果PHP無法創建SOAP調用,那麼您將無法達到發送XML請求的地步。檢查你的錯誤日誌中的PHP SOAP錯誤。

相關問題