从Guzzle Response Message获取http请求标头为字符串

时间:2015-05-27 16:37:15

标签: php http guzzle

使用Guzzle执行http请求后,我想打印所有响应标头。我怎么能这样做?

在guzzle文档中声明getHeaders()方法应该能够将头文件转换为字符串,但是

print $response->getHeaders();

&GT?; 不起作用。还有人说 GuzzleHttp \消息\响应 应该有一个名为getRawHeaders()的方法,它应该将标题作为字符串返回,但php告诉我该方法在Response对象上是未定义的。那么,我怎样才能完成将所有响应标题打印为字符串的任务?

2 个答案:

答案 0 :(得分:3)

如果您希望在Guzzle 6.0中看到详细版本的响应和请求标头,则需要在请求中启用调试选项。例如:

$YourGuzzleclient=new Client();
$YourGuzzleclient->request('POST', '{Your url}',
  ['debug'=>true,'otheroptions'=>array()]
);

此选项将打印所有响应和请求标头。查看documentation page您可以在哪里找到更多信息。

答案 1 :(得分:1)

我相信你必须遍历标题,试试这个:

foreach ($response->getHeaders() as $name => $values) {
    echo $name . ': ' . implode(', ', $values) . "\r\n";
}

根据api(http://api.guzzlephp.org/class-Guzzle.Http.Message.Response.html#_getRawHeaders),您可以这样做:

echo $response->getRawHeaders();