我正在使用 PHP guzzle
我试过了
public static function get($url) {
$client = new Client();
try {
$res = $client->request('GET',$url);
$result = (string) $res->getBody();
$result = json_decode($result, true);
return $result;
}
catch (GuzzleHttp\Exception\ClientException $e) {
$response = $e->getResponse();
$responseBodyAsString = $response->getBody()->getContents();
}
}
我不断得到
当 Guzzle 检测到 400 或 500 错误时如何防止崩溃?
我只想让我的应用程序继续运行和加载。
最佳答案
所以,我敢打赌你的 get()
函数存在于像 App\Http\Controllers
这样的命名空间中,这意味着:
catch (GuzzleHttp\Exception\ClientException $e) {
实际上被解释为好像您写了:
catch (App\Http\Controllers\GuzzleHttp\Exception\ClientException $e) {
由于显而易见的原因,不会抛出此类异常。
您可以通过以下方式解决命名空间问题:
catch (\GuzzleHttp\Exception\ClientException $e) {
(注意前导 \
)或放置:
use GuzzleHttp\Exception\ClientException;
在 namespace
声明之后的文件顶部,仅捕获 ClientException
。
参见 http://php.net/manual/en/language.namespaces.basics.php .
关于php - Guzzle 检测到 400 或 500 错误时如何防止崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46817723/