laravel如何处理第三方APIHttp::post错误

laravel how to handle third party API Http::post error

我是 laravel 中的新成员,我正在使用第三方 API 发送短信通知,但第三方 API 有一些停机时间,所以我需要刷新页面一次或两次才能发送通知,我那次在我的网站上出错。

如果出现错误,我需要自动发送第二次尝试,但我不知道在我的网站上显示什么错误。

获取错误

Illuminate\Http\Client\ConnectionException
cURL error 28: Failed to connect to api.gateway.in port 80: Timed out (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

我的控制器

public function Store_Enrollment(Request $request)

    {

      $this->validate($request, [

  'student_name' => 'required|string|max:255',
  'phone_no' => 'required|string|max:10',
         
    ]);
 
   $input['student_name'] = ucfirst ($request['student_name']);
   $input['phone_no'] = $request->phone_no;
   $redirect = Student::create($input); 
 
  
Http::post("http://api.gateway.in/sendmessage.php?user=XXX&password=XXX&mobile=$redirect->phone_no&message=thank you $redirect->name,"); 

 return redirect('home' . thank you);

}

HTTP 客户端具有 retry 功能,因此您可以执行以下操作:

Http::retry(3, 30)->post("some_stuff");

其中第一个参数是重试次数,第二个参数是可选的重试间隔秒数。

因此上面的请求将在 30 秒之间重试 3 次。

你可能不想抛出一个错误,但你不能永远重试,所以我建议使用 trycatch 块,这样应用程序可能会失败优雅地。错误处理是个大问题。