Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術。是:通過SOAP在Web上提供的軟件服務。
XML Web Service的特點
Web Service的主要目標是跨平台的可互操作性。為了實現這一目標,Web Service 完全基於XML(可擴展標記語言)、XSD(XML Schema)等獨立於平台、獨立於軟件供應商的標准,是創建可互操作的、分布式應用程序的新平台。因此使用Web Service有許多優點:
Web Service開發
.net平台內建了對Web Service的支持,包括Web Service的構建和使用。與其它開發平台不同,使用.net平台,你不需要其他的工具或者SDK就可以完成Web Service的開發了。.net Framework本身就全面支持Web Service,包括服務器端的請求處理器和對客戶端發送和接受SOAP消息的支持。下來我們就一步一步的用Microsoft Visual Studio .net 2015(后面簡稱VS.Net 2015)創建和使用一個簡單的Web Service。
1:首選建立 一個webservice 服務實例 :(如下圖)
創建新的ASP.NET,WEB應用程序注意下圖標識
在創建好新的框架后,選中項目節點新添加(web服務asmx)文件,添加確定。
如下圖生成簡單的,程序語言的鼻祖語言“Hello,world”
生成后我們直接選中運行(如下兩圖)所示,並且設為起始頁
效果如下圖展示:(點擊Helloworld)將直接調用,頁面將返回業務所需要的參數數據。
完成以下圖所示后,我們一個簡單的webservice調用就成功了。接下來我們設計一個加減法的調用。
在對應的webservice_eg中繼續寫第二個接口方法,如下代碼片段簡單的業務返回兩數字相加之和
[WebMethod (Description ="數字相加之和")] public int GetSum_Number(int a, int b) { return a + b; }
注意:雖然我們webservice接口做的可能很多,但都是照貓畫虎類的,並沒有真正的了解webservice中有些關鍵詞的含義.
例如:WebMethod 含義?
WebMethod :web服務的命令,指示這個方法是web服務提供的方法,本身代表的就是一種屬性,放在一個方法前面,表明下面的方法可以訪問到該屬性里的值。
詳細WebMethod的用法以及提供的屬性:可以參考訪問以下微軟鏈接
運行后如圖展示:
如果出現的是上面的圖片展示效果說明你的WEBSERVICE運行正確,現在記住這個服務地址(即瀏覽器中的地址),
其實個人理解webservice相當於一個接口,這個接口當然是有地址的,往往在開發我們做好的接口發送給客戶(附帶接口集成文件等),通過客戶端調用接口,在服務器端處理客戶的數據 再返回給客戶。所以這個地址是有用的,很顯示這個WEB服務的地址必須要一直開着,如果斷掉的話 會出現什么情況呢??我們接下來繼續在ASP.NET網站如何調用這個服務呢?
好的言歸正傳,接下來就是后台代碼如何調用這個WEB服務了。
首先我們得有個頁面通過控件去調用(因為業務量有限,沒有成熟的返回機制)所以,以界面傳參的形式調用返回數據。
1:新建web窗體頁面(如下圖)
建立新的web頁面如下圖
給定butten觸發事件后,后台寫調用上面我們寫好的相加的方法的接口:后台調用代碼如下
注意:各位看注釋
這個時候,我們就得調用寫好的接口了,不要擔心VS工具.NET編譯器為我們提供了引用第三方接口的公共插件類。如下圖我們繼續。
1:選中你的項目,選擇添加web引用(服務)功能列
2:在地址欄中寫入,我們上面運行的鏈接地址,然后轉到繼續,可以發現:服務中找到了我們寫好的接口文件,下面可以自定義引用名稱。然后確定繼續,發現我們引用出現在了我們項目中如下圖:
Ok,當我們成功引用進來前台需要調用的接口文件,我們繼續開始前陽事件的調用工作,如下圖代碼片段:
1:我們開始引用進來接口
/// <summary> /// 按鈕調用接口事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Click(object sender, EventArgs e) { //這個時候我們發現,我們該怎么調用接口? //別擔心,我們繼續往下看文檔 //在代碼中引用我們寫好接口並實例化服務客戶端webtest_objectSoapClient aa ServiceReference.GaofengSoapClient aa = new GaofengSoapClient(); int sum = aa.GetSum_Number(Convert.ToInt32(TextBox1.Text.Trim()), Convert.ToInt32(TextBox2.Text.Trim())); Label1.Text = sum.ToString(); }
然后我們運行試驗!!!!!!!!!!!!!!!!!!
效果展示出來吧,后期如果需要業務調用,直接上業務參數,方便兩方直接數據共享發送。
一些復雜的接口和這個原理差不多,根據我們系統的實際需求完善WEB服務的功能。
好的,感謝大家閱讀教程,有不足的地方敬請噴,互相學習謝謝。
以下我將實例插件接口上傳到文檔供參考:
