CentOS SOAP扩展模块触发Service端执行相应的操作
创始人
2024-06-23 00:41:32
0

CentOS SOAP对于电脑使用的玩家的常用软件,然后我就学习及深入的研究CentOS SOAP,在这里和大家一起探讨CentOS SOAP的使用方法,希望对大家有用。从PHP5开始内置CentOS SOAP扩展模块,通过它,我们可以方便的向Service发送一个CentOS SOAP消息,从而触发Service端执行相应的操作,并将结果返回;

首先,要确保安装了CentOS SOAP扩展,没有安装的表现是,当运行使用了soapclient的代码时候会有php error Class ‘SoapClient’ not found的错误;这时候应该安装php-soap,在CentOS SOAP上可以方便的使用yum更新安装包>yum install php-soap更新过这些安装包后,需要重新启动一下apache服务,此后SoapClient类就可以用在php script中了下边是使用过程中的一个范例:

  1.  
  2. $client = new SoapClient("some.wsdl");   
  3. $client->SomeFunction($a, $b, $c);  
  4. $arr= $client->__soapCall("SomeFunction", array($a, $b, $c));   
  5. print_r($arr);  
  6. ?>  

1.in WSDL mode,soapCall应用web service,例子用的是asp.net的web service,提供service.asmx页面,调用及查看都比较简单,手册上的example也大多是这个类型,比较简单

CentOS SOAP发送的协议:

  1. POST /servicepath/service.asmx HTTP/1.1   
  2. Host: 211.186.1.4   
  3. Content-Type: text/xml; charset=utf-8   
  4. Content-Length: length   
  5. SOAPAction: "http://211.186.5.15/Service/ServiceMethod" 
  1.  version="1.0" encoding="utf-8"?>   
  2.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3.  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  4. xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">   
  5.    
  6.  xmlns="http://211.186.5.15/Service">   
  7. string   
  8. string   
  9. string   
  10.    
  11.    
  12.  

调用方法:

  1. $client = new SoapClient("http://www.xxx.com/service/service.asmx?WSDL");   
  2. //向SOAP服务方发送参数值   
  3. $param1 = "p1";   
  4. $param2 = "p2";   
  5. $param3 = "p3"

//serviceParam1,serviceParam2,serviceParam3为发送参数值所对应的参数名(或service端提供的字段名) $param = array('serviceParam1' => $param1,'serviceParam2' => $param2,'serviceParam3' => $param3);

//方法名为ServiceMethod,参数数组为$param,默认以parameters字段标示传递的参数数组 $arr = $client->__soapCall('ServiceMethod',array('parameters' => $param)); print_r($arr);

此处,print_r($arr)打印出来的是一个对象,类似于

  1. stdClass Object   
  2. ( [BindValidateResult] => 01062947546 ) 

经过我多次的尝试,发现使用$arr[1],$arr[0],$arr[BindValidateResult]均不能取得有效值;后来查询到通过$arr->BindValidateResult可以访问到返回值;

【编辑推荐】

  1. CentOS Nginx服务器配置nginx.conf
  2. CentOS VM主机支持RedHat AS3/AS4/AS5Linux操作系统
  3. CentOS yum仓库使用 ISO 文件制作
  4. CentOS系统CPU过热处理的解决方法
  5. CentOS bonding技术使用奇怪的拓扑结果

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...