本篇文章為大家展示了PHP5SOAP調(diào)用原理有哪些以及怎么實(shí)現(xiàn),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
10余年的金林網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整金林建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“金林網(wǎng)站設(shè)計(jì)”,“金林網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。SOAP(SimpleObjectAccessProtocol)簡單對象訪問協(xié)議是在分散或分布式的環(huán)境中交換信息的簡單的協(xié)議,是一個(gè)基于XML的協(xié)議。下面創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,小編來講解下PHP5SOAP調(diào)用原理有哪些?PHP5SOAP調(diào)用怎么實(shí)現(xiàn)?
PHP5SOAP調(diào)用原理
SOAP它包括四個(gè)部分:SOAP封裝(envelop),封裝定義了一個(gè)描述消息中的內(nèi)容是什么,是誰發(fā)送的,誰應(yīng)當(dāng)接受并處理它以及如何處理它們的框架;SOAP編碼規(guī)則(encodingrules),用于表示應(yīng)用程序需要使用的數(shù)據(jù)類型的實(shí)例;SOAPRPC表示(RPCrepresentation),表示遠(yuǎn)程過程調(diào)用和應(yīng)答的協(xié)定;SOAP綁定(binding),使用底層協(xié)議交換信息。
WSDL(WebServiceDescriptionLanguage)就是描述XMLWeb服務(wù)的標(biāo)準(zhǔn)XML格式,WSDL由Ariba、Intel、IBM和微軟等開發(fā)商提出。它用一種和具體語言無關(guān)的抽象方式定義了給定Web服務(wù)收發(fā)的有關(guān)操作和消息。就其定義來說,你還不能把WSDL當(dāng)作一種對象接口定義語言,例如,CORBA或COM等應(yīng)用程序體系結(jié)構(gòu)就會(huì)用到對象接口定義語言。WSDL保持協(xié)議中立,但它確實(shí)內(nèi)建了綁定SOAP的支持,從而同SOAP建立了不可分割的聯(lián)系。所以,當(dāng)我在該文中討論WSDL的時(shí)候,我會(huì)假定你把SOAP作為了你的通訊協(xié)議。
SOAP和WSDL雖然是webservice的兩大標(biāo)準(zhǔn),但是兩者并沒有必然的聯(lián)系,都可以獨(dú)立使用。它們之間的關(guān)系就類似HTTP和Html之間的關(guān)系。前者是一種協(xié)議,后者是對一個(gè)WebServer的描述。
PHP5SOAP調(diào)用怎么實(shí)現(xiàn)
PHP5下的配置
在php的的配置文件php.ini中,找到
extension=php_soap.dll
然后將前面的;號(hào)去掉,然后重啟web服務(wù)
查詢webservice方法與參數(shù)、數(shù)據(jù)類型
某省電信公司的入單接口為http://***.******.com/services/AcceptedBusinesswsdl
我們使用SoapClient的__geunctions()和__getTypes()方法查看該接口的方法,參數(shù)和數(shù)據(jù)類型
只有__getFunctions中列出的接口才能被soap調(diào)用。
在根目錄下創(chuàng)建代碼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;
}
>
在瀏覽器運(yùn)行:http://localhost/soap.php后,返回結(jié)果如下
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[]
)
其中有個(gè)方法introduceAcceptedBusinessByStandardInterface(string$xmlStr),將是開發(fā)文檔中提到的要使用的接口,參數(shù)為xml字符串
另外有的接口中提到有SoapHeader認(rèn)證,這就需要加入__setSoapHeaders方法,具體可查看http://php.net/manual/zh/soapclient.setsoapheaders.php
提交入單
這一步就是需要根據(jù)開發(fā)文檔拼接xml字符串,然后作為introduceAcceptedBusinessByStandardInterface的參數(shù)傳入
創(chuàng)建acceptedbusiness.php,內(nèi)容如下
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);
}
>
在瀏覽器中執(zhí)行后,返回
0
入單成功!
2014100905523549742
上述內(nèi)容就是PHP5SOAP調(diào)用原理有哪些以及怎么實(shí)現(xiàn),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。