- 論壇徽章:
- 0
|
使用 php 調(diào)用 soap 接口
為了公開接口,被其他的應(yīng)用程序調(diào)用,經(jīng)常需要創(chuàng)建SOAP端,而在PHP中,SOAP的使用自從PHP4就有了廣泛的使用,開源的例如nosoap都是很不錯的SOAP類,在PHP5開始,就已經(jīng)支持SOAP了,在php_soap.dll(如果需要,請確定你的PHP5+的PHP.INI的SOAP擴展是打開的,并在phpinfo()中可以看到SOAP擴展。)
SOAP的使用有三個步驟:
1:創(chuàng)建您需要真正執(zhí)行的程序,返回為一函數(shù),例如需要查詢當前的時間,我們創(chuàng)建獲取目前時間的函數(shù)(可創(chuàng)建保存在soapfunction.php):
?php
function GetTime(){
return date('Y-m-d',time());
}
?>
2:然后創(chuàng)建一個SOAPServer(可以創(chuàng)建于soaps.php):
?php
include_once('soapfunction.php');
$soap = new SoapServer(null,array('uri'=>"http://www.eol.cn/"));
$soap->addFunction('GetTime');
$soap->handle();
?>
以上代碼第一行是包含了soap要執(zhí)行的文件,第二行創(chuàng)建了一個SoapServer類,該類的第一個參數(shù)是wsdl,第二個參數(shù)是uri,php自帶目前不支持自動生成wsdl,這個構(gòu)造函數(shù)如果第一個參數(shù)是null,第二個是必填的,第二個參數(shù)就是命名空間,這是為了保證互聯(lián)網(wǎng)WebServer的一致性和開發(fā)的一致性而產(chǎn)生的,你可以寫入任何你想要的地址,無論存在與否。
3:客戶端訪問(可以創(chuàng)建soapc.php)
?php
$client = new SoapClient(null, array('location' =>"http://s/test/soap/soaps.php",'uri'=>"http://www.eol.cn/"));
$reversed = $client->GetTime();
echo "獲取到時間是:".$reversed;
?>
這里第一行是創(chuàng)建一個SoapClent,第一個參數(shù)還是wsdl,這里為null,第二個參數(shù)中必須包含命名空間(uri),這兩個參數(shù)都要和需要訪問的SoapServer一致,而執(zhí)行地址(location)為SoapServer的php訪問地址。
訪問soapc.php,將返回(類似):
獲取到時間是:2008-04-08
到此,一個簡單的SOAP傳遞結(jié)束了。
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/104997/showart_2079179.html |
|