Laravel 5:Guzzle -> getStatusCode 出现异常?

Laravel 5: Guzzle -> getStatusCode on Exception?

我正在为自己编写一个小应用程序。此应用程序正在使用包 Guzzle.

调用不同的网站

但是,我想将每个请求连同时间和请求持续时间以及我获得的请求状态代码一起存储在我的数据库中。我现在面临的问题是,我不知道如何获取请求失败时的http状态码..

到目前为止,这是我的代码:

$client = $this->getGuzzleClient();
$request = $client->post($url, $headers, $value);
try {
    $response = $request->send();
    return $response->getBody();
}catch (\GuzzleHttp\Exception\RequestException $e){
    dd(array($e, $e->getResponse()));
}

$e->getResponse() returns null。我还尝试使用 $e->getStatusCode()$e->getRequest()->getStatusCode()。两者都不起作用...

为了绝对确定请求是有效的,我处理了一个真正的异常,我打电话给这个网站 https://httpstat.us/503。这个returns一个503 http状态码...

那么,如何获取http状态码呢?你们有什么想法吗?

谨致问候,谢谢!

如果您捕获到 ServerException,那么您捕获的是 5xx,如果代码执行进入那里,Guzzle 已收到 5xx。如果您捕获到也包含网络错误的 RequestException。如果代码执行进入了 RequestException 但没有进入 ServerException 意味着对于 Guzzle 来说不是 5xx 错误而是网络错误。

$errorstatuscode=$异常->状态;

// 从 Excetion 对象获取错误代码