PHP5SOAP调用原理有哪些以及怎么实现
创始人
2024-12-19 05:41:36
0次

  SOAP(SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议。下面小编来讲解下PHP5SOAP调用原理有哪些?PHP5SOAP调用怎么实现?

  PHP5SOAP调用原理

  SOAP它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encodingrules),用于表示应用程序需要使用的数据类型的实例;SOAPRPC表示(RPCrepresentation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。

  WSDL(WebServiceDescriptionLanguage)就是描述XMLWeb服务的标准XML格式,WSDL由Ariba、Intel、IBM和微软等开发商提出。它用一种和具体语言无关的抽象方式定义了给定Web服务收发的有关操作和消息。就其定义来说,你还不能把WSDL当作一种对象接口定义语言,例如,CORBA或COM等应用程序体系结构就会用到对象接口定义语言。WSDL保持协议中立,但它确实内建了绑定SOAP的支持,从而同SOAP建立了不可分割的联系。所以,当我在该文中讨论WSDL的时候,我会假定你把SOAP作为了你的通讯协议。

  SOAP和WSDL虽然是webservice的两大标准,但是两者并没有必然的联系,都可以独立使用。它们之间的关系就类似HTTP和Html之间的关系。前者是一种协议,后者是对一个WebServer的描述。

  PHP5SOAP调用怎么实现

  PHP5下的配置

  在php的的配置文件php.ini中,找到

  extension=php_soap.dll

  然后将前面的;号去掉,然后重启web服务

  查询webservice方法与参数、数据类型

  某省电信公司的入单接口为http://***.******.com/services/AcceptedBusinesswsdl

  我们使用SoapClient的__geunctions()和__getTypes()方法查看该接口的方法,参数和数据类型

  只有__getFunctions中列出的接口才能被soap调用。

  在根目录下创建代码soap.php

  header("content-type:text/html;charset=utf-8");

  try{

  $client=newSoapClient("http://***.******.com/services/AcceptedBusinesswsdl");

  print_r($client->__getFunctions());

  print_r($client->__getTypes());

  }catch(SOAPFault$e){

  print$e;

  }

  >

  在浏览器运行:http://localhost/soap.php后,返回结果如下

  Array

  (

  [0]=>ArrayOf_xsd_anyTypeintroduceAcceptedBusiness(string$c3,string$c4,string$linkman,string$linknum,string$num,string$idcard,string$remark,string$address)

  [1]=>ArrayOf_xsd_anyTypeintroduceAcceptedBusinessByAiZhuangWei(string$subname,string$linkphone,string$idcard,string$address,string$businesstype,string$marketcode,string$surveycode,string$commanager,string$commanagerphone,string$bendiwang,string$fenju,string$zhiju,string$remark)

  [2]=>stringintroduceAcceptedBusinessByStandardInterface(string$xmlStr)

  [3]=>stringintroduceAcceptedBusinessByCallOut(string$xmlStr)

  [4]=>stringintroduceAcceptedBusinessByYddj(string$xmlParam)

  [5]=>ArrayOf_xsd_anyTypequeryAcceptedBusinessByAiZhuangWei(string$surveycode,string$starttime,string$endtime)

  [6]=>stringqueryCallOutOrderByConfig(string$xmlParam)

  )

  Array

  (

  [0]=>anyTypeArrayOf_xsd_anyType[]

  )

  其中有个方法introduceAcceptedBusinessByStandardInterface(string$xmlStr),将是开发文档中提到的要使用的接口,参数为xml字符串

  另外有的接口中提到有SoapHeader认证,这就需要加入__setSoapHeaders方法,具体可查看http://php.net/manual/zh/soapclient.setsoapheaders.php

  提交入单

  这一步就是需要根据开发文档拼接xml字符串,然后作为introduceAcceptedBusinessByStandardInterface的参数传入

  创建acceptedbusiness.php,内容如下

  header("content-type:text/html;charset=utf-8");

  try{

  $client=newSoapClient('http://***.*******.com/services/AcceptedBusinesswsdl');

  $xml="

  **电信

  张三

  13412341234

  广东深圳

  iPhone6

  1111111111111111111111111111111

  2111

  1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

  ";

  $return=$client->introduceAcceptedBusinessByStandardInterface($xml);

  print_r($return);

  }catch(SOAPFault$e){

  print_r('Exception:'.$e);

  }

  >

  在浏览器中执行后,返回

  0

  入单成功!

  2014100905523549742

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...