thinkphp 调用wsdl接口实例化SoapClient抛出异常
2024-08-25 16:02:29
异常:Message:SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://*****?wsdl' : failed to load external entity "http://****?wsdl"。
本地调用接口正常,放到服务器上以后,出现了500错误。try{}cache(){}:
try{
$client=new SoapClient($wsdl);
}catch(Exception $e){
echo 'Message:'.$e->getMessage();
}
$client=new SoapClient($wsdl);
}catch(Exception $e){
echo 'Message:'.$e->getMessage();
}
抛出异常:Message:SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://*****?wsdl' : failed to load external entity "http://****?wsdl"。
首先确认,服务器PHP环境配置和本地一样。也百度了很多解决办法,都没起作用,请教了接口的开发者.NET 工程师。发给一张截图:
解决办法:$client=new SoapClient($wsdl);这句代码前添加libxml_disable_entity_loader(false); 问题就这样解决了。
查libxml_disable_entity_loader()作用: Disable the ability to load external entities(禁用加载外部实体的能力)。
SoapClient在我的代码里面确实是外部的实体,我不禁用加载外部实体的能力,就可以实例化SoapClient。问题也就自然而然的解决了。
PHP调用Web services接口实例:
$url='http://****?wsdl';
$client = new SoapClient($url);
$param = array("param1"=>$param1,"param2"=>$param2);
方法1:
$p = $client->__soapCall('functionname',array("parameters"=>$param));
$arr= json_decode($p->functionnameResult,true);
方法2:
$ret2 = $client->functionname($param);
$actjson=$ret2->functionnameResult;
$arr=json_decode($actjson,true);
return $arr;
最新文章
- jQqery EasyUI dategrid行中多列数据的可编辑操作
- MySQL_关于用嵌套表计算的可以不用 20161205
- DIOCP之注册编码解码器与ClientContext
- 基于 IdentityServer3 实现 OAuth 2.0 授权服务数据持久化
- 【转】微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
- ListView返回选中的多项目
- QPixmap,QImage图片大小缩放linux版
- Python网页爬虫(一)
- 基于公网smtp协议实现邮件服务器
- T-SQL和PL/SQL 区别
- fastclick.js介绍
- Spring流程
- 在Android 中使用KSOAP2调用WebService
- 表单的自动到json与urlstr
- django 常见错误汇总
- layui 左侧三级菜单栏
- 【Spring】25、Spring代理。 BeanNameAutoProxyCreator 与 ProxyFactoryBean
- How_Require_Extensions_Work
- CentOS 7.4 系统安装 git
- C++笔记 4
热门文章
- 一步搞定私有Git服务器部署(Gogs)
- prefix sums--codility
- php 文件上传$_FILES中error返回值详解
- Linux 开发环境搭建与使用——SlickEdit 的安装与配置
- [Spring] Resource 资源
- [转]使用Android-Studio 开发Android 程序
- 自己写了一个图片的马赛克消失效果(jQuery)
- hadoop2.6.0的eclipse插件编译和设置
- 同一客户端使用多份SSH Key
- 消息队列kafka