所以我有一个使用Zend amazon Web服务客户端的应用程序。我现在从服务中收到错误,我想看到原始请求和响应。
我无法在文档中找到这样做的方法!这个类实现了Zend_Rest_Client,所以看起来应该有一个rawResponse()方法,但是没有。这是在生产服务器上,我在防火墙后面,所以我不能代理fiddler。
有什么建议吗?
答案 0 :(得分:3)
Zend_Rest_Client
扩展了Zend_Service_Abstract
,后者又实现了一个getHttpClient()
方法,该方法返回一个Zend_Http_Client
实例,该方法公开了一个getLastResponse()
方法,该方法返回一个Zend_Http_Response
实例,它再次暴露了getBody()
方法。 Phew,我猜是OOP :)。
让我们谈谈我们的语言:
$restClient->getHttpClient()->getLastResponse()->getBody();
就是这样。
编辑:
Zend_Service_Abstract::getHttpClient()
似乎是静态的,所以您甚至可以这样称呼它:
Zend_Service_Abstract::getHttpClient()->getLastResponse()->getBody();
但我不推荐它。您必须确切地知道何时调用该方法,因为HTTP客户端必须填充一些响应。更不用说静态方法只是某种全局变量,这很糟糕。
答案 1 :(得分:0)
所以答案是重载亚马逊类,并打印出ItemSearch / ItemLookup中的$ response-> getBody()方法
答案 2 :(得分:0)
如果您想查看收到的实际xml,那么您应该:
$ actual_xml = htmlentities($ client-> getHttpClient() - > getLastResponse() - > getBody());
echo $ actual_xml;
请注意。
如果你想把它写入文件,那么使用htmlspecialchars_decode($ actual_xml);