在PHP中利用wsdl建立標準webservice

2021-06-14 00:31:04 字數 2317 閱讀 8997

說明:

•         非標準的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表示式。...