【发布时间】:2021-02-19 21:55:31
【问题描述】:
我正在使用带有以下代码的 Guzzle:
try {
$client = new Client();
$result = $client->get("http://{$request->ES_HOST}:{$request->ES_PORT}", [
'headers' => ['Content-Type' => 'application/json'],
'auth' => [$request->ES_LOGIN, $request->ES_PASSWORD],
'allow_redirects' => false,
]);
$response['status'] = $result->getStatusCode();
$response['message'] = json_decode($result->getBody()->getContents());
} catch (RequestException $e) {
$response['status'] = $e->getResponse()->getStatusCode();
$response['message'] = $e->getMessage();
}
而且它运行良好,但是当用户为 guzzle 提供错误的 URL 来处理它而不是在 RequestException 中被捕获时,它会在服务器中给出 500 错误并返回带有 cURL error 7: Failed to connect to [host] port [port]: Connection refused 消息的常规 Exception .我可以这样做,以便我可以捕获错误和状态代码并返回给用户吗?
【问题讨论】:
-
你能删除 try-catch 块并检查内部日志引发了什么样的异常吗?