本文實(shí)例講述了php實(shí)現(xiàn)通過soap調(diào)用.Net的WebService asmx文件。分享給大家供大家參考,具體如下:
最近,幫一個(gè)同行測(cè)試用.net寫的WebService接口,C#調(diào)用通過,現(xiàn)在需要測(cè)試一下php版本對(duì)它的調(diào)用,經(jīng)過各種探索,相關(guān)的PHP調(diào)用webservice的過程如下:
1.打開php相關(guān)擴(kuò)展:
找到配置文件php.ini 文件, 打開以下擴(kuò)展
extension = php_soap.dll extension = php_curl.dll extension = php_openssl.dll
2.php代碼如下:
<?php header("content-type:text/html;charset=utf-8"); $client = new SoapClient(" http://192.168.3.178:8080/ChkWelePsw.asmx?WSDL"); //本行測(cè)試不可行 $client = new SoapClient(" http://192.168.3.178:8080/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123"); //參數(shù)這樣傳遞 先包裝一下 $param = array('username'=>'test3','psw'=>'123'); //調(diào)用必須用__soapCall $p = $client->__soapCall('ChkWele',array('parameters' => $param)); print_r($p->ChkWeleResult); //這里先輸出一下變量$p,看看是什么類型。 ?>
注意,在php調(diào)用某個(gè)方法后,其soap對(duì)象,就會(huì)自動(dòng)產(chǎn)生一個(gè)Result方法,以方便顯示調(diào)用結(jié)果,如上面的 被調(diào)用端的WebService的 “ChkWele”方法 ,
調(diào)用端就有相應(yīng)的“ChkWeleResult”方法。
.NET部分 webservice要注意的地方
/* * <system.web>在這個(gè)節(jié)點(diǎn)中加入如下內(nèi)容 <webServices> <protocols> <add name="HttpSoap"/> <add name="HttpPost"/> <add name="HttpGet"/> <add name="Documentation"/> </protocols> </webServices> */ [WebMethod(Description = "This......", EnableSession = false)] public string ChkWele(string username, string psw) { string ret = ""; return ret; }
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP針對(duì)XML文件操作技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP錯(cuò)誤與異常處理方法總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。