【发布时间】:2016-04-26 21:48:15
【问题描述】:
我在 PHP 中使用 Guzzle (v6.1.1) 向服务器发出 POST 请求。它工作正常。我正在添加一些日志记录功能来记录发送和接收的内容,但我不知道如何获取 Guzzle 发送到服务器的数据。我可以很好地得到响应,但是如何获取 sent 数据? (这将是 JSON 字符串。)
这是我的代码的相关部分:
$client = new GuzzleHttp\Client(['base_uri' => $serviceUrlPayments ]);
try {
$response = $client->request('POST', 'Charge', [
'auth' => [$securenetId, $secureKey],
'json' => [ "amount" => $amount,
"paymentVaultToken" => array(
"customerId" => $customerId,
"paymentMethodId" => $token,
"publicKey" => $publicKey
),
"extendedInformation" => array(
"typeOfGoods" => $typeOfGoods,
"userDefinedFields" => $udfs,
"notes" => $Notes
),
'developerApplication'=> $developerApplication
]
]);
} catch (ServerErrorResponseException $e) {
echo (string) $e->getResponse()->getBody();
}
echo $response->getBody(); // THIS CORRECTLY SHOWS THE SERVER RESPONSE
echo $client->getBody(); // This doesn't work
echo $client->request->getBody(); // nor does this
任何帮助将不胜感激。我确实尝试在 Guzzle 源代码中查找类似于 getBody() 的函数来处理请求,但我不是 PHP 专家,所以我没有想出任何有用的东西。我也搜索了很多谷歌,但发现只有人在谈论从服务器返回响应,我对此没有任何问题。
【问题讨论】: