如何模拟请求工具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)

相关推荐

  • Bootstrap中如何导航组件和选项卡组件

    技术Bootstrap中如何导航组件和选项卡组件本篇内容介绍了“Bootstrap中如何导航组件和选项卡组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧

    攻略 2021年11月25日
  • spring集成mybatis依赖配置

    技术spring集成mybatis依赖配置 spring集成mybatis依赖配置dependencies
    !-- 测试依赖--dependencygroupIdjunit/groupIdarti

    礼包 2021年10月27日
  • 信息安全的基本属性有哪些

    技术信息安全的基本属性有哪些这篇文章主要讲解了“信息安全的基本属性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“信息安全的基本属性有哪些”吧!

    攻略 2021年11月9日
  • 单例模式设计

    技术单例模式设计 单例模式设计1、饿汉式/*** 饿汉式:直接创建对象,不管你是否需要,都会创建这个对象;** 1、构造器私有化* 2、自动创建,并且用静态保存* 3、向外提供这个实例* 4、强调这是一

    礼包 2021年12月22日
  • mysql高级查询中in作用是什么(mysql中and和or的用法区别举例)

    技术mysql中in和or的区别有哪些这篇文章主要讲解了“mysql中in和or的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中in和or的区别有哪

    攻略 2021年12月23日
  • vue自定义指令设置(vue自定义指令在什么场景使用)

    技术vue中自定义指令怎么用小编给大家分享一下vue中自定义指令怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、v-drag需求:鼠标拖动元素思路:元素偏移量 = 鼠标滑动后的坐标 - 鼠标初始

    攻略 2021年12月16日