2009-08-18 12 views
1

Zend amazon Webサービスクライアントを使用するアプリケーションがあります。私は今サービスからエラーが出ています。生のリクエストと応答を見たいと思います。Zend_Rest_Clientを使用しているときにWebサービスをデバッグする方法

私はドキュメントでこれを行う方法が見つかりません!このクラスはZend_Rest_Clientを実装しているので、rawResponse()メソッドがあるはずですが、そうでないようです。これはプロダクションサーバー上にあり、ファイアウォールの背後にあるので、私はファイトラーに代理することはできません。

提案がありますか?

答えて

3

Zend_Rest_Clientが順番にZend_Http_Clientを返すgetHttpClient()方法を実装Zend_Service_Abstractを、拡張ItemSearchの中に$対応 - > getBody()メソッドをプリントアウトすることですこのインスタンスはZend_Http_Responseインスタンスを返すgetLastResponse()メソッドを公開します。このインスタンスは再びgetBody()メソッドを公開します。 Phew、それは私が推測するOOPです:)

さんはしかし、私たちの言語を話しましょう:これで終わりです

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

を。

EDIT:

それは、Zend_Service_Abstract::getHttpClient()が静的​​であることが表示されますので、あなたも、このようにそれを呼び出すことができます。

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

しかし、私はそれをお勧めしません。メソッドをいつ呼び出すかは、HTTPクライアントに何らかの応答を設定する必要があるため、正確に知る必要があります。静的メソッドは、単なる一種のグローバルなものであり、悪いことです。

+0

これはとても甘いです。ありがとう。 –

0

だから答えはアマゾンのクラスをオーバーロード、および/ ItemLookupでは

0

あなたは実際のXMLを表示したい場合は、受け取った後、あなたべき:
$ actual_xml =にhtmlentities($クライアント - > getHttpClient() - >でgetLastResponse() - > getBody());
echo $ actual_xml;

メモ。
これをファイルに書き込む場合は、htmlspecialchars_decode($ actual_xml)を使用します。

関連する問題