如何记录Zend_Http_Client请求

时间:2014-10-07 15:59:45

标签: php http zend-framework

我在尝试之前尝试记录我的请求,以确切知道我发送的示例: 我有这段代码:

$client = new Zend_Http_Client();
$client->setUri($uri);
$client->setConfig(array('timeout' => 30));
$client->setHeaders('Content-Type: application/xml');
$client->setMethod('POST');

$client->setParameterPost('PartnerID', 'xxx');
$client->setParameterPost('Password', 'XXXXXXXXX');

在我提出请求之前,我想知道我要发送什么,就像那样:

$request = json_encode($client);
Log::notice("Request: " . $request);

或:

Log::notice("Request: " . $client);

但是不起作用......

我可以记录这样的回复:

$response = $client->request();
Log::notice("Response: " . $response);

就像我可以看到响应json,但我想知道我正在做的请求。

谢谢大家。

1 个答案:

答案 0 :(得分:1)

您收到函数Zend_Http_Client->getLastRequest()的最后一个请求。请注意,该函数返回一个字符串,您可能需要添加一些代码以使其适合有意义的JSON输出。将以下内容添加到您的代码中:

$request = $client->getLastRequest()
// make your changes to support JSON
Log::notice("Request: " . $request)

Introduction - Zend_Http - Zend Framework - Accessing Last Request and Response的在线文档中也提到了该功能。