php - Guzzle 检测到 400 或 500 错误时如何防止崩溃?

标签 php laravel laravel-5 guzzle

我正在使用 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();
    }

}

我不断得到

enter image description here

当 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/

相关文章:

laravel - 如何验证 Laravel 请求中的选择

php - PhpStorm 2016.2.1 中未定义的常量特征

php - 在 PHP 设置中,memory_limit > upload_max_filesize 应该吗?

php - CodeIgniter 上 Assets 文件夹的路径

php - Laravel 路由 - 相同路由的自定义域

html - Laravel:背景图片不会出现

php - Laravel Voyager 菜单未更新

php - 使用 laravel 在垂直列中动态创建带有标题的 HTML 表?

php - 在集合 laravel 中使用查询范围

PHP 电子邮件表单 - 定义发件人