一、簡介
1、什么是WebService?
-
- WebService是一個SOA(面向服務的編程)的架構,它是不依賴於語言,不依賴於平台,可以實現不同的語言間的相互調用,通過Internet進行基於Http協議的網絡應用間的交互。
- WebService是一個SOA(面向服務的編程)的架構,它是不依賴於語言,不依賴於平台,可以實現不同的語言間的相互調用,通過Internet進行基於Http協議的網絡應用間的交互。
- 可以實現不同應用程序和在不同系統平台上開發出來的應用程序之間通信,Web Service 以 SOAP 作為基本通信協議。
- Web Service 甚至可以穿越防火牆,真正的自由通信
一般要訪問的Web服務器以及要訪問的Web Service的客戶端很可能位於防火牆后面,都默認關閉其它端口而開發HTTP端口,而Web service 正是基於HTTP的,所以它可以穿越防火牆。
2、http協議客戶端和服務器的交互?
由HTTP客戶端發起一個請求,建立一個到服務器指定端口(默認是80端口)的TCP連接。HTTP服務器則在那個端口監聽客戶端發送過來的請求。一旦收到請求,服務器(向客戶端)發回一個狀態行,比如"HTTP/1.1 200 OK",和(響應的)消息,消息的消息體可能是請求的文件、錯誤消息、或者其它一些信息。
soap 協議:它描述了一種在分散或分布式的環境中如何交換信息的輕量級協議。soap在http協議的基礎上,一個基於XML的協議。
Soap=Http+XML
http協議 :純文本協議
二、創建Web服務
下面是VS2015創建WebService並且調用的簡單實例:
1、創建Web項目
2、添加項,選擇 Web服務,將服務命名為WebService。
3、打開新創建的文件WebService.asmx文件,在里面創建一個TestMethod方法。作為測試方法。
4、發布運行進入頁面之后可以看到剛剛添加的方法TestMethod:
點擊方法,進入新的頁面,並且輸入參數,然后點擊掉調用:
可以看到返回的數據,格式為XML格式(數據較少不太明顯)。
一個簡單的 webservice 就搭建完成。
三、引用Web服務
1、靜態調用
WebService的引用一般有兩種方法,一種是靜態的用VS自帶的添加服務引用,會生成一個特定的Reference.cs類文件,另一種是通過soap/get/post方法動態調用webservices,只支持string類型或數組類型。
(1)、靜態調用,首先創建一個Winform窗體程序,項目名為APPTest,並且在窗體中添加一個Button控件、一個TextBox控件
(2)、添加服務引用
(3)、發布的地址是http://192.168.1.179:8008,那么服務引用的地址:http://192.168.1.179:8008 + /webservice.asmx,網站的訪問網址加上Web服務名,然后點擊確定。
點擊確定。然后就OK了。調用的時候直接實例化一個新的對象,然后調用想用的方法就OK了。