webservice通过soap协议出现不能加载wsdl文件解决办法

PHP在用SOAP协议做接口的时候,经常会碰到如下问题,不是不成功,而是偶尔不成功,实在让人费解!

ERR: SOAP-ERROR: Parsing WSDL: Couldn‘t load from ‘http://www.xxxxx.com/member/member_sync.php?wsdl‘ : failed to load external entity "http://www.xxxxx.com/member/member_sync.php?wsdl"

查找日志发现:

NOTIC: [2] SoapClient::SoapClient(): I/O warning : failed to load external entity "http://www.xxxxx.com/member/member_sync.php?wsdl" /home/wwwroot/default/xxxxx.com/App/Modules/Admin/Action/OrderAction.class.php 第 112 行.

网上查找很多资料,有开启selinux、关闭soap缓存、开启openssl等等答案,但尝试过后都不尽人意,现终极解决办法:

只需把php的客户端SoapClient的wsdl模式修改为non-wsdl模式,即可解决!

wsdl模式:

<?php

$url = "http://xxxxx.org/member/member_sync.php?wsdl";

$client = new SoapClient ( $url );

$arr = array (

‘username‘ => ‘test123‘,

‘company‘ => ‘深圳市xxxxx科技有限公司‘,

‘password‘ => md5 ( md5 ( "test123" ) ),

‘encrypt_code‘ => ‘thisisencryptcode‘ ); //加密串,必须

$result = $client->common_func ( ‘sync_member‘, json_encode ( $arr ) );

var_dump ( $result );

?>

non-wsdl模式:

<?php

$client = new SoapClient(null,array(‘location‘=>‘http://www.zgzszj.com/member/member_sync.php‘,uri => ‘member_sync.php‘));

$arr = array (

‘username‘ => ‘test123‘,

‘company‘ => ‘深圳市xxxxx科技有限公司‘,

‘password‘ => md5 ( md5 ( "test123" ) ),

‘encrypt_code‘ => ‘thisisencryptcode‘ ); //加密串,必须

$result = $client->common_func ( ‘sync_member‘, json_encode ( $arr ) );

var_dump ( $result );

?>

webservice通过soap协议出现不能加载wsdl文件解决办法

时间: 2024-11-09 06:56:10

webservice通过soap协议出现不能加载wsdl文件解决办法的相关文章

VS2012 加载项目失败解决办法

项目文件被卸载时: 一般解决办法为 1.编辑 ****.csproj文件 2.注释:<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 3.重新加载即可 VS2012 加载项目失败解决办法

SSH中懒加载异常的解决办法

web.xml 的配置文件 <!-- 配置Spring解决懒加载问题的过滤器 --> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <

百度编辑器Ueditor 初始化加载内容失败解决办法

项目上有用到百度文本编辑器ueditor,在页面加载的时候初始化编辑器内容时候,使用 $.document.ready(function() { UE.getEditor('editor').setContent('欢迎光临'); }) setContent方法无法加载内容,提示编辑器为空,后来想想,可能是编辑器还没有加载完就执行此脚本导致的.后在网上找资料,可以判断ueditor编辑器完成加载后再加载内容: 核心内容如下 var editor_a = new baidu.editor.ui.E

Javascript加载速度慢解决办法

通常我们的网站里面会加载一些js代码,统计啊,google广告啊,百度同盟啊,阿里妈妈广告代码啊,一堆,最后弄得页面加载速度很慢,很慢.解决办法:换一个js包含的方式,让javascript加载速度倍增.把通常加载方式:  代码如下 复制代码 <script src="xxxx.js"></script> 改变成:  代码如下 复制代码 <script type="text/javascript"> document.write(

升级MAC OS到10.13, 10.14系统后UNITY工程无法加载资源的解决办法

升级MAC OS到10.13, 10.14系统后,出现UNITY工程无法加载资源的情况: Unity项目中Asset目录显示为空! 解决办法一: 打开Launchpad中的磁盘工具 (也就是实用工具下的"磁盘工具") 新建一分区,名称大小任意,格式为MAC OS 扩展(日志式) 将unity工程移至新分区 OK,工程已经可以正常加载了 解决办法二: 1. 升级Unity版本 (如Unity5.6.6, Unity 2018.1 均可以)   2. 安装相应的补丁版Unity3D 参考链

html加载js乱码解决办法

第一种方式——编码统一 我们以前觉得出现乱码的原因是因为编码不统一,就是因为我们设置编码统一之后,就解决了问题,所以,让html和js的编码统一,是最简单的一个乱码解决方式,原因是什么,是因为,如果你在加载js的时候,并没有声明js的编码格式,那么浏览器会默认的按照当前html的编码格式进行解析引入的js文件,如果你的js和本身页面编码不一样,并且js中引入了中文字符,那么肯定会出现乱码的.要知道,程序都是笨笨的. 第二种方式——在引入js的标签中加入charset属性 这样引入,那么这个xx.

IIS-7.5 第一次加载慢的 解决办法

问题焦点 Win2008R2,Win7 下面IIS部署的.NET站点第一次加载比较慢. 解决办法: 1.基本原理: 在第一个请求到达之前加载Web应用程序,从而提高其网站的响应性.通过主动加载和初始化所有依赖项(如数据库连接.编译ASP.NET代码和加载模块). 2表现为: 通过预加载工作进程减少第一个请求的响应时间 当发生重叠回收时,通过预加载工作进程提高可靠性 3安装配置 3.1.IIS-7.5扩展包 下载地址 https://pan.baidu.com/s/1TfSVOY5WclB9swP

IDEA创建maven项目时加载慢的解决办法

配置实用本地maven配置文件

js 页面history.back()返回上一页,ios 不重新加载ready的解决办法

参考自 http://blog.csdn.net/hbts_901111zb/article/details/76691900 项目中,主页面有很多输入字段,当由主页跳转到子页面, 将子页面的字段 set入localstorage中, 由于返回主页面不能将先前输入的字段刷新掉,所以必须要在子页面history.back(). 但由于ios和安卓机制不同,安卓会重新刷新主页面的ready, ios则不会.解决方案如下: 1 $(function () { 2 var isPageHide = fa