失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 如何解决php中curl和soap方式请求服务超时的问题

如何解决php中curl和soap方式请求服务超时的问题

时间:2023-09-10 21:15:21

相关推荐

如何解决php中curl和soap方式请求服务超时的问题

后端开发|php教程

php,curl,soap,php,curl,超时,php,curl请求超时

后端开发-php教程

本篇文章主要介绍了php中curl和soap方式请求服务超时问题的解决,内容挺不错的,现在分享给大家,也给大家做个参考。

北京赛车源码程序出售,vscode几个好用的插件,ubuntu 整机备份,tomcat加载jsp过大,爬虫图片专辑,php 函数传递数组,seo网络推广外包公司,律师网站模板下载,蓝色通用企业站织梦模板lzw

公司中有不少服务是以curl或者soap方式连接第三方公司做的服务来交互数据,最近新增加了个需求,就是第三方服务发版时候,连接不上对方服务器时候要进行重试,其它原因导致的业务处理失败,则按失败处理,不会再进行调用。

森林舞会游戏平台源码,vscode 添加lib,ubuntu 种子,tomcat加载卡,php安装sqlite3,wordpress 工具插件,vue前端框架如何对接后台,爬虫设计目的要掌握什么,php 去掉后缀,宣城seo整站运营,dz旅游网站模板,网页 手机 html模板免费下载,微网站模板免费下载lzw

思路就是判断curl或者soap连接不上对方服务器时候,抛出TimeoutException异常,捕获后做重试处理,其它错误导致的抛出的Exception则按失败处理。

点点网源码,vscode 同步插件,ubuntu设置黑屏怎么办,tomcat关闭jpda,sqlite升级大版本,ipresenter相册3d插件,手机ui前端开发框架,爬虫数据采集方案,php的发展前景,seo项目专员招聘seo顾问,asp网页游戏网站源码,抽奖页面网页代码,java web模板框架下载,超市管理系统 php源码,微擎配小程序lzw

curl处理

$ch = curl_init($url); $options = array(CURLOPT_RETURNTRANSFER => true,CURLOPT_CONNECTTIMEOUT => 5, //5秒连接时间CURLOPT_TIMEOUT => 30, //30秒请求等待时间 ); curl_setopt_array($ch, $options); $response = curl_exec($ch); if ($no = curl_errno($ch)) {$error = curl_error($ch);curl_close($ch);//$no错误码7为连接不上,28为连接上了但请求返回结果超时if(in_array(intval($no), [7, 28], true)) { throw new TimeoutException(连接或请求超时 . $error, $no);} } curl_close($ch);

soap处理

php文档并没详细写soap超时或者连接不上返回的具体代码,业务处理失败或者连接不上等所有不成功,都会抛出一个SoapFault异常,看了下php的源码发现,还是有定义的

php源文件位置 /ext/soap/php_http.c

定义错误代码内容

从代码里可以看出来,连接不上都会返回一个HTTP码,soap并没像curl那样有具体的代码可以区分二者,只利用这个码可以判断是超时或者连接不上等网络问题

具体代码如下

ini_set(default_socket_timeout, 30); //定义响应超时为30秒 try {$options = array( cache_wsdl => 0, connection_timeout => 5, //定义连接超时为5秒);libxml_disable_entity_loader(false);$client = new \SoapClient($url, $options);return $client->__soapCall($function_name, $arguments); } catch (\SoapFault $e) {//超时、连接不上if($e->faultcode == HTTP){ throw new TimeoutException(连接或请求超时, $e->getCode());} }

可以连接上soap服务,但客户端或者服务端出问题 $e->faultcode 会返回WSDL, 用这个来判断

如果觉得《如何解决php中curl和soap方式请求服务超时的问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。