我有两个Laravel应用程序,一个是从另一个调用API。如何从另一个Laravel应用程序捕获Laravel错误?
如果请求应用程序发送无效数据,API调用Laravel的“中止”函数。
但是,我似乎无法赶上请求应用程序端的这个错误。下面是一些代码:
请求的应用程序:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if ($method == 'POST') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
}
$result = curl_exec($ch);
Log::info($result);
curl_close($ch);
而且我接收应用程序:
if ($result == '') {
$error = 'An unexpected error occurred fetching shipping rates. If this error persists, please contact support.';
abort(400, $error, array('errorText'=>$error));
$error = true;
}
现在,我不能特别修改我的接收应用程序的错误处理,因为该应用程序已正确处理这些错误信息。
但是在我的请求应用程序中,Log::info
调用的结果是深度嵌入错误代码的整个HTML。
我似乎无法得到没有一些自定义字符串解析的消息,但我觉得应该有一些方法知道它失败并检索该错误消息。
有什么想法?
嗯,我刚刚试过这个,并记录statusCode被返回,并出于某种原因,它是0,而不是400. – Rail24
这很奇怪,你使用'curl_close'之前呢? – user3158900
是的,但它也在'curl_exec'之前。傻我。现在有没有一种通用的方法来查明它是否是一个错误,除了将它与400进行比较? – Rail24