【发布时间】:2020-01-26 14:13:20
【问题描述】:
我在 laravel 框架中使用 Guzzle,但是当主机离线时,我得到一个异常而不是你可以通过 getStatusCode() 得到的状态码。我现在对请求进行了尝试,但在此方法之外,我有一个检查状态码的方法。我的问题是如何在 catch 中返回正确的响应,以便可以在此方法之外调用 getStatusCode()。
我发出请求的代码如下所示:
public function makeRequest($method, $requestUrl, $queryParams = [])
{
try{
$client = new Client(['http_errors' => false]);
return $client->request($method, $requestUrl, [
'query' => $queryParams
]);
}catch(RequestException $exception){
LOG::info($exception->getMessage());
return $exception->getResponse();
}
}
【问题讨论】:
-
你也需要捕获其他异常,例如
ConnectException,ClientException, ServerException -
@AbuSayem RequestException 似乎也处理 ConnectException 但会查看其他 2
-
在最新版本中,它与RequestException github.com/guzzle/guzzle/commit/…分开