91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php soap怎么實現web service接口服務

發布時間:2021-08-09 23:05:07 來源:億速云 閱讀:114 作者:chen 欄目:編程語言

這篇文章主要介紹“php soap怎么實現web service接口服務”,在日常操作中,相信很多人在php soap怎么實現web service接口服務問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php soap怎么實現web service接口服務”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

web service是什么,不多說,可參見百科說明web service百度百科。

soap是一種協議,屬于web service實現所使用的一種技術規范。

web service的接口實現有兩種方式,一種是需要生成wsdl文檔的方式,一種是不需要生成wsdl文檔的方式。

在實際操作之前,先檢查一下自己的環境,是否支持soap,然后修改一下php.ini配置文件,將“soap.wsdl_cache_enabled”項設置為0。

無需生成wsdl文檔的方式

這種方式相較于需要生成wsdl文檔的方式,更簡單一些,但是有一些方法并不支持,例如獲取操作方法的__getFunctions(),是否合用看自己的選擇。

server端ts1.php

<?php
class testA{
        public function sayHi($str){
                return 'hi,'.$str;
        }
        public function add($a,$b){
                return $a+$b;
        }
}
$ss = new SoapServer(null, array('uri'=>'sampleA'));
$ss->setClass('testA');
$ss->handle();

在server端ts1.php文件中,創建了一個類,然后創建SoapServer并做設置,uri用來確保一致性。

client端tc1.php

<?php
$client = new SoapClient(null, array(
        'location'=>'http://10.0.0.232:1075/soap/ts1.php',
        'uri'=>'sampleA'
        ));
echo $client->sayHi('Taylor,Swift');
echo "<br/>";
echo $client->add(1,2);

在client端,使用SoapClient對象來進行請求,location指明請求的具體地址,uri的值與server端設置的一致,用來保證一致性。

在瀏覽器輸入http://10.0.0.232:1075/soap/tc1.php來進行訪問,可以看到輸出如下圖所示:

這種方式無需生成wsdl文檔,實現簡便,但同樣的,因為沒有wsdl文檔,client也無法獲取到相關的操作方法,而生成wsdl文檔的方式,client端就可以單獨根據一個請求地址來獲取到server端公開的所有接口。

生成wsdl文檔的方式

wsdl文檔是一個xml文檔,通常可以使用公開的類庫SoapDiscovery來生成,我用百度網盤共享一下需要可以直接下載SoapDiscovery.class.php。

server端ts2.php

<?php
define('WSDL_FILE','ts2.wsdl');
if(!file_exists(WSDL_FILE)){
        require_once('SoapDiscovery.class.php');
        $sd = new SoapDiscovery('testD', 'liang');
        $str = $sd->getWSDL();
        file_put_contents(WSDL_FILE, $str);
}
$ss = new SoapServer(WSDL_FILE);
$ss->setClass('testD');
$ss->handle();
class testD{
        public function sayHello($world){
                return 'hello,'.$world;
        }
        public function add($a, $b){
                return $a+$b;
        }
}

server端的ts2.php先檢測了一下需要的wsdl文件是否存在,若不存在則創建,然后創建SoapServer對象并進行設置,因為使用的是wsdl文檔,所以new SoapServer時直接寫入wsdl文檔的地址即可。

client端tc2.php

<?php
$client = new SoapClient('http://10.0.0.232:1075/soap/ts2.wsdl');
print_r($client->__getFunctions());
echo "<br/>";
echo $client->sayHello('Avril Lavigne');
echo "<br/>";
echo $client->add(9,8);

在client端的tc2.php文件中,創建SoapClient對象時,直接填入的是請求的wsdl文檔的地址,這個文檔是由ts2.php生成的。

現在,server端的ts2.php與client端的tc2.php都已經寫好了,那么現在就需要請求一下ts2.php了,為什么請求它?

因為我們需要先通過ts2.php來創建wsdl文件,當然,只有在第一次的時候需要這樣做,當wsdl文檔創建好之后,就不需要再這樣做了。

(如果后期修改了ts2.php,那還是需要刪除掉舊的wsdl文檔,然后重新請求一下ts2.php用來生成新的wsdl文檔。)

1、請求ts2.php用來生成wsdl文檔http://10.0.0.232:1075/soap/ts2.php。

2、請求tc2.php查看返回結果:

3、通過瀏覽器,直接訪問wsdl文檔的地址,可以看到wsdl文檔的具體內容:

php soap也支持各種其它的操作,例如鑒權,頭設置等,這些功能如有需要,可以參閱官方文檔。

到此,關于“php soap怎么實現web service接口服務”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

景泰县| 筠连县| 资中县| 郑州市| 亳州市| 镇赉县| 鸡西市| 和林格尔县| 图木舒克市| 当雄县| 清水县| 汽车| 彭泽县| 通渭县| 遵义市| 寻甸| 德化县| 会泽县| 大石桥市| 阳新县| 普兰县| 高雄市| 吕梁市| 吉安县| 建湖县| 福州市| 白城市| 清丰县| 梅河口市| 肥乡县| 罗城| 宜兰市| 墨脱县| 新乡市| 阳曲县| 淅川县| 平谷区| 和平县| 大丰市| 白银市| 芜湖县|