.NET C#創(chuàng)建WebService服務簡單實例
Web service是一個基于可編程的web的應用程序,用于開發(fā)分布式的互操作的應用程序,也是一種web服務
WebService的特性有以下幾點:
1.使用XML(標準通用標記語言)來作為數(shù)據(jù)交互的格式。
2.跨平臺性,因為使用XML所以只要本地應用可以連接網(wǎng)絡解析XML就可以實現(xiàn)數(shù)據(jù)交換,比如安卓、IOS、WindowsPhone等都可以實現(xiàn)對Web service的數(shù)據(jù)交互。
3.基于HTTP協(xié)議,直接跨越防火墻,通用型強;
下面使用Visual Studio 2013(其他VS版本亦是如此)來創(chuàng)建一個簡單Web service服務。
一、打開Visual Studio->文件->新建->網(wǎng)站
二、之后選擇ASP.NET空網(wǎng)站,再點擊“確定”
三、新建網(wǎng)站后你會看到解決方案管理器中看到一個web.config,待會我們可以通過配置這個文件來實現(xiàn)瀏覽器對WebService的遠程調(diào)用。
現(xiàn)在,右鍵解決方案中的項目名添加一個WebService項目。
四、之后,你可以在項目模版中找到Web服務(ASMX),添加它!
五、創(chuàng)建之后在APP_Code文件夾中創(chuàng)建一個WebService.cs文件
在網(wǎng)站根目錄下會同時創(chuàng)建一個WebService.asmx文件
這兩個文件中WebService.cs負責邏輯部分,WebService.asmx提供服務部分。將來引用WebService服務時將直接引用WebService.asmx文件來調(diào)用WebService服務,服務的執(zhí)行部分就是WebService.cs文件
現(xiàn)在打開WebService.cs文件來編輯邏輯部分實行一個簡單的《客戶端調(diào)用web服務實現(xiàn)一個簡單的加法運算,并返回以字符串給客戶端運算結(jié)果》
/* Web.Services.cs文件 */ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; /// <summary> /// WebService 的摘要說明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // 若要允許使用 ASP.NET AJAX 從腳本中調(diào)用此 Web 服務,請取消注釋以下行。 // [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { public WebService () { //如果使用設計的組件,請取消注釋以下行 //InitializeComponent(); } /// <summary> /// 方法上頭的[WebMethod]是聲明一個web服務方法,如果你想寫個方法能讓客戶端調(diào)用并返回結(jié)果就必須在方法上頭標注[WebMethod] /// 如果是只負責邏輯運算或私有方法,并不打算給客戶端結(jié)果,只給類方法內(nèi)部調(diào)用就無需聲明[WebMethod] /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns>將運算結(jié)果轉(zhuǎn)換成字符串返回</returns> [WebMethod] public string HelloWorld(int a, int b) { int result = a + b; return result.ToString(); } }
上面的代碼寫了一個基本的方法供遠程調(diào)用,將cs文件保存后,一個簡單的web服務就創(chuàng)建了!
下面我們啟動這個項目,用瀏覽器查看微軟為我們定義測試的調(diào)用頁面:
在這里我們可以看到我們寫的Hello方法可以調(diào)用了,我們單擊進入這個方法進入調(diào)用調(diào)試頁面:
輸入?yún)?shù),我們寫的是一個簡單的加法運算,參數(shù)便是我們寫的HelloWorld方法的參數(shù)a和b,我們輸入兩個整數(shù)點擊調(diào)用,出現(xiàn)如下結(jié)果:
下面是web服務返回的結(jié)果,其中133就是HelloWorld參數(shù)a+b返回的結(jié)果:
<?xml version="1.0" encoding="UTF-8"?> <string xmlns="http://tempuri.org/">133</string>
到這里,以后我們想要調(diào)用一個web服務就可以通過以上方式把客戶端從服務器獲取數(shù)據(jù),訪問:"主機名/web服務名.asmx"就可以調(diào)用了。
得到的數(shù)據(jù)是個XML,所以客戶端得到數(shù)據(jù)后需要客戶端解析XML文件。
注意:以上創(chuàng)建在瀏覽器調(diào)用的web服務僅供本地計算機調(diào)試使用,需要配置web.config(之前提到過)才能實現(xiàn)遠程調(diào)用調(diào)試
如果不配置,在遠程調(diào)用會出現(xiàn):測試窗體只能用于來自本地計算機的請求解決 的問題。
如需遠程調(diào)用可以參考一下方法:
在網(wǎng)站的解決方案的下方找到web.config
打開后添加如下配置即可:
<system.web> <webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost"/> </protocols> </webServices> <system.web>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net生成高質(zhì)量縮略圖通用函數(shù)(c#代碼),支持多種生成方式
這兩天正在研究報表中餅圖的繪圖方法,文章中的某些做法值得參考.2008-08-08將DataRow轉(zhuǎn)成指定類型的類,并返回這個類的對象(帶值)
由于實際需要 將DataRow轉(zhuǎn)成指定類型的類,并返回這個類的對象(帶值) ,實現(xiàn)方法看下面的代碼。2008-04-04vs2012創(chuàng)建的ado.net模型無法實例化的解決方案
本文給大家分享的是升級vs2012后,發(fā)現(xiàn)創(chuàng)建數(shù)據(jù)模型無法實例化使用,嘗試了很多種方法,最后在度娘的幫助下,才解決了這個問題,這里記錄下來,分享給大家。2015-03-03VB.NET設置屏幕分辨率、顏色位數(shù)、刷新率 實例代碼
這篇文章介紹了VB.NET設置屏幕分辨率、顏色位數(shù)、刷新率 實例代碼,有需要的朋友可以參考一下2013-07-07.net core在服務器端獲取api傳遞的參數(shù)過程
這篇文章主要介紹了.net core在服務器端獲取api傳遞的參數(shù)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10