<?php
$this->client = new \GuzzleHttp\Client;
try {
$response = $this->client->request('get', $url);
$result = json_decode($response->getBody());
Log::save($result);
} catch (RequestException $e) {
Log::save($e->getMessage());
}
如果目标页面有内部服务器错误500情况,我将收到错误消息Client error: 404
,实际上目标页面显示了如果我使用浏览器打开它的bug,我想保存那些要记录的PHP错误消息,但我不知道如何使用Guzzle。
答案 0 :(得分:0)
有几种不同的方法可以继续:
new \GuzzleHttp\Client()
的客户端;默认行为将用于请求
抛出GuzzleHttp\Exception\ServerException
例外。在这种情况下,您所要做的就是将请求包装在try / catch块中(如上所示)。$stack = new \GuzzleHttp\HandlerStack(); $client = new \GuzzleHttp\Client(['handler' => > $stack,])
;那么\GuzzleHttp\Middleware::httpErrors
中间件还没有加载到堆栈中,你必须将它捕获到你自己的中间件中,或者将一个callable传递给'on_headers'请求选项。参考文献: