喋喋不休地了解如何在主机脱机时处理请求异常



我在 laravel 框架中使用 Guzzle,但是当主机离线时,我得到一个异常,而不是您可以使用getStatusCode()获得的状态代码。我现在尝试在请求周围捕获,但在此方法之外,我有一个检查状态代码的方法。我的问题是我如何在捕获中返回正确的响应,以便我可以在此方法之外调用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();
}
}

你的想法(总是从方法返回Response对象(在设计上不起作用。我的意思是你已经看到了,在某些情况下没有Response对象(例如,当无法建立与主机的连接时,所以在这种情况下HTTP流甚至没有启动,这就是为什么你没有任何HTTP状态代码(。

IMO 是使您的代码知道异常的最佳方式。不要试图在你的makeRequest()里处理它,只是让它流得更远,直到你实际上可以处理它的程度。

相关内容

  • 没有找到相关文章