說明:
• 非標準的webservice,可能只能php才能訪問
• 標準的webservice,就必須要使用wsdl
在這裡我只介紹標準的webservice www.2cto.com
一、 建立wsdl
2。修改soapdiscovery.class.php的公共方法getwsdl(),讓其自動生成wsdl檔案(注意存放路徑),這裡只是建立乙個wsdl模型
1 //return sprintf('%s%s%s%s%s%s', $headerwsdl, $porttypewsdl, $bindingwsdl, $servicewsdl, $messagewsdl, '');
2 //生成wsdl檔案,將上面的return注釋
3 $fso = fopen($this->class_name . ".wsdl" , "w");
4 fwrite($fso, sprintf('%s%s%s%s%s%s', $headerwsdl, $porttypewsdl, $bindingwsdl, $servicewsdl, $messagewsdl, ''));
5 exit;
3。提供服務的類或者函式
1 //比如我有個類:person,檔名為:person.class.php★,裡面有兩個方法,乙個是say,乙個是run。很簡單。
2 <?php
3 class person
4
9 public function run()
10
13 }
14 ?>
4。開始正式生成wsdl:
建立檔案server.php。將以下內容拷貝進去,執行即可生成乙個person.wsdl檔案
1 <?php
2 include("person.class.php");
3 include("soapdiscovery.class.php");
4 //第乙個引數是類名(生成的wsdl檔案就是以它來命名的),即person類,第二個引數是服務的名字(這個可以隨便寫)。
5 $disco = new soapdiscovery('person','person');
6 $disco->getwsdl();
7 ?>
5。建立webservice服務端程式
將server.php檔案的內容清空,複製以下**進去:
1 <?php
2 include("person.class.php");
3 $objsoapserver = new soapserver("person.wsdl");是剛建立的wsdl檔案
4 //$objsoapserver = new soapserver("server.php?wsdl");//這樣也行
5 $objsoapserver->setclass("person");//註冊person類的所有方法
6 $objsoapserver->handle();//處理請求
7 ?>
6。建立webservice客戶端程式,測試webservice是否有效,檔名是:client.php
<?php
$client = new soapclient("person.wsdl");
//$client = new soapclient("server.php?wsdl");//這樣也行
echo($client->say());
echo "
";echo($client->run());
echo "
";?>
7。.net如果要使用的話,你只要提供乙個url給他就行了。
獲得url的方法:你可以先到person.wsdl檔案裡面查詢,這裡的url(具體url是根據你的目錄確定的)就是你要提供給.net開發人員使用的。不過別高興太早,後面要加:「?wsdl」,http://******************xx/server.php?wsdl這樣才是對的,不信你可以將url拷貝到瀏覽器的位址列裡看下就知道了。
.net開發人員獲得你給他的url之後,就可以在自己的專案裡面新增乙個服務引用或者web引用了,然後就可以根據提示完成相關操作,對於使用.net的開發人員來說很簡單的。
(1)建立一**,建立乙個web引用,輸入url
(2)實力呼叫
protected void page_load(object sender, eventargs e)}
在Mac中,利用終端建立txt檔案
文字文件 txt檔案,一下簡稱txt 是大家日常工作中都會用到的編輯器。window環境下大家簡單右擊新建 文字文件就可以搞定,但是mac中就沒有這麼方便了,右擊新建也找不到txt,那如何新建乙個txt呢,下面我就結合的經驗和自己體驗 跟大家簡單講一下 簡單方法有兩種,一種是利用文字編輯 text ...
利用註解在ioc容器中建立物件
在spring框架中,如何利用註解在ioc容器中建立bean物件?component 寫在類定義的上面,在ioc容器中建立乙個該類的物件 service 作用同 component,在業務邏輯層 service層 使用 reposity 作用同 component,在持久層 dao層 使用 cont...
C 利用lambda在函式中建立內部函式
有使用過js的朋友,相信都知道function。js中的function是可以在裡面在定義乙個作為內部使用的。有時為了控制作用域,或者這種小函式只在這個函式體內會使用,所以就不希望在外部在作額外的定義。那c 中有沒有這樣類似的方式呢?答案是有的。在c 中要實現,需要用到的是委託和lambda表示式。...