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技术使用奇怪的拓扑结果

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...