2009-08-18 43 views
1

因此,我有一個使用Zend亞馬遜Web服務客戶端的應用程序。我現在從服務中收到一個錯誤,我想看到原始請求和響應。如何在使用Zend_Rest_Client時調試Web服務

我找不到在文檔中這樣做的方法!這個類實現了Zend_Rest_Client,所以看起來應該有一個rawResponse()方法,但沒有。這是在生產服務器上,我在防火牆後面,所以我不能代理小提琴手。

有什麼建議嗎?

回答

3

Zend_Rest_Client延伸Zend_Service_Abstract,這又實現了getHttpClient()方法,它返回一個Zend_Http_Client該實例公開了一個getLastResponse()方法,該方法返回一個Zend_Http_Response實例,該實例再次公開getBody()方法。唷,這是OOP我猜:)。

讓我們來談談我們的語言雖然:

$restClient->getHttpClient()->getLastResponse()->getBody(); 

就是這樣。

編輯:

看來,Zend_Service_Abstract::getHttpClient()是靜態的,所以你甚至可以把它像這樣:

Zend_Service_Abstract::getHttpClient()->getLastResponse()->getBody(); 

但我不會推薦它。您必須知道何時調用該方法,因爲HTTP客戶端必須填充一些響應。更不用說靜態方法只是某種全局變量,這很糟糕。

+0

太好了。謝謝。 – 2009-08-19 18:46:25

0

因此,答案是重載亞馬遜類,並打印出該ItemSearch $響應 - > getBody()方法/ ItemLookup

0

,如果你想查看實際的XML收到,那麼你應該:
$ actual_xml =ヶ輛($客戶 - > getHttpClient() - >使用getLastResponse() - > getBody());
echo $ actual_xml;

注意。
如果你想寫這個文件,然後使用htmlspecialchars_decode($ actual_xml);