当前位置:首页 > PHP > 正文内容

php soap 捕获异常,使用try catch 捕获Soap 异常

高老师8年前 (2018-10-09)PHP2413

项目中使用服务来执行webservice,由于对方系统api不稳定,经常导致服务崩溃,只能重启,一个月差不多要重启一次。

初期的解决办法是捕获异常,然后continue掉。

<?php
try
{
    $url = 'http://baidu.com';
    $client = new SoapClient($url) or die("Database Connect Error");
}
catch (SoapFault $e)
{
    echo $e->getMessage();
}

上面的代码不到一个月再次挂掉了,错误是:

(1).SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://120.234.34.32/SecondHandMobileAPI1.asmx?WSDL' : failed to load external entity

(2).PHP Fatal error: Uncaught SoapFault exception: [HTTP] Could not connect to host

如果对方的地址不存在或者不稳定的情况下进行实例化会直接抛出致命错误,本以为php内部实例化会抛出异常,方便捕获,但是却没有,于是直接屏蔽致命错误。

<?php
error_reporting(0);
try
{
    $url = 'http://baidu.com';
    $client = new SoapClient($url) or die("Database Connect Error");
}
catch (SoapFault $e)
{
    echo $e->getMessage();
}

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/67.html

分享给朋友:

“php soap 捕获异常,使用try catch 捕获Soap 异常” 的相关文章

php调用 java webservice接口

php调用 java webservice接口

php调用Webservice基本语法如下:$url ='xxxxxxx.cn'  //链接服务器端 $client = new SoapClient($url);通过以上语法已经连接到webservice,也可将wsdl在本地使用,...

php解决浮点数精度问题

php解决浮点数精度问题

首先看看以下代码:代码1:<?php $a=0.1; $b=0.7; if($a+$b==0.8) { echo "1"; } else{ echo "2"; } ?>代码2:<?php   &n...

PHP获取站点根目录,PHP获取应用根目录,cgi和cli都支持

PHP获取站点根目录,PHP获取应用根目录,cgi和cli都支持

重构框架的时候想要考虑支持下cli模式,于是参考了thinkphp的底层。/**  * 获取应用根目录  * @return string  */ public static function getRootP...

php异步信号处理

php异步信号处理

php7.1引入了PHP异步信号处理函数pcntl_async_signals() 来处理阻塞问题。在php7之前信号处理方式有2种,第一种是基于ticks来每执行一行代码来触发执行信号监听,第二种是直接while(true){  //监听信号 }第一种方式如果某行的代码阻塞时间较长会影响...

php定义常量数组

php定义常量数组

<?php //php7+ define('CONFIG', [     'MYSQL' => '127.0.0.1',     ...

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl.dll找不到指定的模块

最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...