边肖想和大家分享如何模拟请求工具curl的异常处理。相信大部分人还是不太了解。因此,我想分享这篇文章供你参考。希望你看完这篇文章后收获多多。让我们一起来看看。
在日常开发过程中,有很多场景使用curl来模拟请求。当进行跨站点请求时,其他网站的稳定性无法保证。
当其他网站无法顺利访问时,会影响当前的业务系统,不容易排查问题,需要异常处理。
privatefunctioncurlPost(字符串$route,数组$postData):数组
{
尝试{
//向任务队列发送消息。
$url=env('API_URL ')。$ route
//初始化。
$ curl=curl _ init();
//将url设置为爬网。
curl_setopt($curl,CURLOPT_URL,$ URL);
//设置头文件信息作为数据流输出。
curl_setopt($curl,CURLOPT_HEADER,false);
//将获取的信息设置为以文件流的形式返回,而不是直接输出。
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
//设置帖子提交模式。
curl_setopt($curl,CURLOPT_POST,true);
//设置帖子数据。
curl_setopt($curl,CURLOPT _ POSTFIELDS,$ post data);
//$ user agent=' Mozilla/5.0(windowsnt 6.1;WOW64)applebwebkit/537.36(KHTML,likeGecko)Chrome/29 . 0 . 1547 . 66 safari/537.36 ';//模拟windows用户的正常访问。
//curl_setopt($curl,CURLOPT_USERAGENT,$ user agent);
//执行命令。
$ output=curl _ exec($ curl);
//获取错误代码。
$ CUlRRNo=curl _ errno($ CUlR);
if($ CRILRno){ 0
thrownew exception(curl _ error($ curl))。'('.$ curlErrno。')');
}
//关闭URL请求。
curl _ close($ curl);
$result=json_decode($output,true);
$ result[' curl _ status ']=1;
$ result[' curl _ message ']=' ';
}捕获(\异常$ e){ 0
$ result[' curl _ status ']=0;
$ result[' curl _ message ']=$ e-Getmessage();
}
返回$ result
}//通话。
$result=$this-curlPost($route,$ post data);
//验证curl是否正常发送。
if(!$ result[' curl _ status ']){ 0
返回$ this-returnError($ result[' curl _ message ']);
}
//验证业务。
if($ result[' error code ']==0){ 0
返回$ this-returnSuccess([]);
}else{
返回$ this-returnError($ result[' Errormsg ']);
}卷曲相关函数。
国际curl_errno
(资源$ch
)返回上一次cURL操作的错误代码。
如果没有错误发生,则返回错误代码或0(零)。
弦乐curl_error
(资源$ch
)返回最近一次cURL操作的文本错误详细信息。
这就是文章“如何模拟请求工具curl的异常处理”的全部内容。感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。想了解更多知识,请关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/36823.html