私は2つのLaravelアプリケーションを持ち、1つはLaravelアプリケーションからもう1つは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を記録しました。何らかの理由で400ではなく0になっています。 – Rail24
'curl_close'を使う前にそれは奇妙です。 – user3158900
はい、それは 'curl_exec'の前でもありました。愚かな私。今それを400と比較する以外にエラーがあるかどうかを調べる一般的な方法はありますか? – Rail24