我在PHP中使用Guzzle(v6.1.1)向服务器发出POST请求。它工作正常。我添加了一些日志记录功能来记录发送和接收的内容,我无法弄清楚如何获取Guzzle发送到服务器的数据。我可以得到的回应蛮好的,但我怎么得到发送数据? (这将是JSON字符串。)如何使用Guzzle PHP获得SENT数据的主体?
这里是我的代码的相关部分:
$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专家,所以我没有提供任何有用的东西。我也搜索了很多谷歌,但只发现有人在讨论从服务器获取响应,我毫不犹豫。
这两个都会导致出现问题,并从服务器获取404。 – ruhnet
我刚刚尝试过(guzzle 6.1),它适用于我。你能发布你的完整代码吗? – Federkun
我编辑了我的问题以显示实际的代码,除了变量赋值和这些不相关。我通过在我的代码之前添加所有中间件代码,并在客户端对象创建命令中添加''handler'=> $ stack'来尝试所发布的内容。 – ruhnet