[.NET]分享使用Web Service介接的方式(II)

為了怕跟客戶不相同而造成介接的錯誤(介面錯誤或是namespace錯誤),所以自已模擬的Web Service介面要跟客戶的一模一樣,這樣到客戶端測試才會OK! 那要如何做才能一模一樣呢? 以下介紹使用WSDL來產生interface,然後實作它。

在前一篇(分享使用Web Service介接的方式)介紹取得要介接的Web Service的WSDL來加入參考。

可是如果是要在公司測試而客戶又沒有提供出來的話,那就要自已模擬寫一個一樣的Web Service來測試。

但是為了怕跟客戶不相同而造成介接的錯誤(介面錯誤或是namespace錯誤),所以自已模擬的Web Service介面要跟客戶的一模一樣,這樣到客戶端測試才會OK!

以下將介紹如何透過WSDL.EXE來建立Web Service的Interface,然後我們再建立一個Web Service去實作它即可!

測試如下,

1.先取得客戶Web Service的WSDL,另存成附檔名為WSDL的檔案,如下,

image

 

2.開啟VS.NET命令提示字元

2.1.輸入WSDL <WSDL File> /l:CS /serverInterface /o:<Interface FilePath> 如下(如果是用VB的話,就/l:VB),

      wsdl h:\Service1.wsdl /l:CS /serverInterface /o:h:\WSService1Interface.cs

image

 

3.建立Web專案

3.1.新增一個Web Service(WebService1),並將預設的HelloWorld Method刪掉,如下,

image

 

3.2.加入Step 2.1 產生出來的 ServerInterface 檔案(h:\WSService1Interface.cs)

image

 

3.3.在Web Service中實作 ServerInterface

image

image

 

3.4.在實作的Method中加入測試的Code

image

 

3.5.開啟WebService1.asmx,測試GetMobile是否OK,如下,

image

 

另外,可以發現,雖然我們建立的WebService1的namespace是tempuri.org,因為實作客戶Web Service的WSDL建立出來的介面,所以在呼叫時,SOAPAction及xmlns是客戶那邊的namespace哦!

所以這樣就不怕會有不相容的狀況了!

image

 

可以開啟WSService1Inteface.cs檔,會發現Namespace都是客戶那邊的哦! 如下,

image

 

4.建立一個Winform來測試我們的Web Service

4.1.加入Web參考,如下,

image

 

4.2.測試開發環境的Web Service,如下,

image

 

4.2.將URL設定到客戶端,並測試,如下,

image

 

透過WSDL.EXE來建立Web Service的Interface,然後我們再建立一個Web Service去實作,就不怕會跟客戶做的Web Servcie有不一致的情況了!

不過,還是要跟客戶確認他們做的Web Service是否還有異動,以確保每次介接都可以成功!

如果各位先進有其他的方式,也請分享給大家,謝謝!

 

參考資料

how to generate web service out of wsdl

Generating C# Web Service Skeleton from wsdl

C# How to: Generate a Web Service from WSDL

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^