如何模拟请求工具curl的异常处理

技术如何模拟请求工具curl的异常处理小编给大家分享一下如何模拟请求工具curl的异常处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!日常开

边肖想和大家分享如何模拟请求工具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

(0)

相关推荐

  • 利用socket实现一个简单的web聊天(websocket服务器开源)

    技术如何分析基于WebSocket的聊天开源项目如何分析基于WebSocket的聊天开源项目,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。如果你是站长,是否

    攻略 2021年12月24日
  • 如何随机获取oracle数据库中的任意一行数据

    技术如何随机获取oracle数据库中的任意一行数据小编给大家分享一下如何随机获取oracle数据库中的任意一行数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!对于rownum来说它是oracle系统顺

    攻略 2021年11月12日
  • 如何查询mysql的引擎

    技术如何查询mysql的引擎这篇文章主要讲解了“如何查询mysql的引擎”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何查询mysql的引擎”吧!

    攻略 2021年12月9日
  • 【强基06】new和init魔法方法的调用顺序和使用规则

    技术【强基06】new和init魔法方法的调用顺序和使用规则 【强基06】__new__和__init__魔法方法的调用顺序和使用规则调用顺序:
    类里面__new__ 方法的执行优先级高于__init_

    礼包 2021年12月17日
  • Redis五种数据类型的底层实现

    技术Redis五种数据类型的底层实现 Redis五种数据类型的底层实现简介
    Redis的五大数据类型也称五大数据对象;前面介绍过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使

    礼包 2021年11月11日
  • golang 相同结构体比较方式比较

    技术golang 相同结构体比较方式比较 golang 相同结构体比较方式比较golang 相同结构体比较方式比较
    使用==
    示例:
    type Student struct {Name stringAg

    礼包 2021年12月24日