<?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,实际上目标页面已经显示了错误是什么,如果我使用浏览器打开它,我想保存那些PHP错误信息到日志中,但我不知道如何得到使用Guzzle。
发布于 2015-09-24 00:25:26
有几种不同的方法可以继续:
new \GuzzleHttp\Client()的客户端;默认行为将是请求抛出GuzzleHttp\Exception\ServerException异常。在这种情况下,您所要做的就是将您的请求包装在一个try / catch块中(如上所示)。$stack = new \GuzzleHttp\HandlerStack(); $client = new \GuzzleHttp\Client(['handler' => > $stack,]);则\GuzzleHttp\Middleware::httpErrors中间件尚未加载到堆栈中,您将不得不将其捕获到您自己的中间件中,或者通过将callable传递给'on_headers‘请求选项来捕获它。参考文献:
https://stackoverflow.com/questions/32738649
复制相似问题