我有一个通用的 HTTP 文件访问 API,用于我正在使用的系统。为了使其尽可能灵活,它以 HTTP 字符串的形式返回请求和响应数据。
我目前正在实现一个与 S3 交互的版本,通过 AWS SDK for PHP 2 .
是否有一种简单的方法可以快速获取S3Client在执行操作时发出的Request和Response HTTP请求?如果没有,是否有一种更零碎的方法可以让我不必伪造它?
基本上,我想要按需获取请求和响应的全文,或者至少访问相关数据( header 、响应代码、URL 等),以便我可以正确填充我的框架的返回数据.
谢谢。
最佳答案
您可以从命令对象获取请求或响应对象。假设 $s3
拥有 Aws\S3\S3Client
的实例,您可以执行以下操作:
$command = $s3->getCommand('ListObjects', array('Bucket' => '<bucket-name>'));
$request = $command->getRequest();
$response = $command->getResponse();
这些对象具有用于查看正文、 header 、状态代码等的方法,您可以将它们转换为字符串以查看字符串形式。
如果您想在执行命令时快速查看请求和响应,您可以连接线路记录器,并查看 STDOUT(或 STDERR)上显示的内容
$s3->addSubscriber(\Guzzle\Plugin\Log\LogPlugin::getDebugPlugin());
$s3->listObjects(array('Bucket' => '<bucket-name>'));
关于php - 适用于 PHP 2 的 AWS S3 开发工具包 - 获取 HTTP 请求/响应字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14406084/