重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章为大家展示了PHP5SOAP调用原理有哪些以及怎么实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
10余年的金林网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整金林建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“金林网站设计”,“金林网站推广”以来,每个客户项目都认真落实执行。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
上述内容就是PHP5SOAP调用原理有哪些以及怎么实现,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。