Web service是一個基于可編程的web的應(yīng)用程序,用于開發(fā)分布式的互操作的應(yīng)用程序,也是一種web服務(wù)
WebService的特性有以下幾點(diǎn):
1.使用XML(標(biāo)準(zhǔn)通用標(biāo)記語言)來作為數(shù)據(jù)交互的格式。
2.跨平臺性,因?yàn)槭褂肵ML所以只要本地應(yīng)用可以連接網(wǎng)絡(luò)解析XML就可以實(shí)現(xiàn)數(shù)據(jù)交換,比如安卓、IOS、WindowsPhone等都可以實(shí)現(xiàn)對Web service的數(shù)據(jù)交互。
3.基于HTTP協(xié)議,直接跨越防火墻,通用型強(qiáng);
下面使用Visual Studio 2013(其他VS版本亦是如此)來創(chuàng)建一個簡單Web service服務(wù)。
一、打開Visual Studio->文件->新建->網(wǎng)站
二、之后選擇ASP.NET空網(wǎng)站,再點(diǎn)擊“確定”
三、新建網(wǎng)站后你會看到解決方案管理器中看到一個web.config,待會我們可以通過配置這個文件來實(shí)現(xiàn)瀏覽器對WebService的遠(yuǎn)程調(diào)用。
現(xiàn)在,右鍵解決方案中的項(xiàng)目名添加一個WebService項(xiàng)目。
四、之后,你可以在項(xiàng)目模版中找到Web服務(wù)(ASMX),添加它!
五、創(chuàng)建之后在APP_Code文件夾中創(chuàng)建一個WebService.cs文件
在網(wǎng)站根目錄下會同時創(chuàng)建一個WebService.asmx文件
這兩個文件中WebService.cs負(fù)責(zé)邏輯部分,WebService.asmx提供服務(wù)部分。將來引用WebService服務(wù)時將直接引用WebService.asmx文件來調(diào)用WebService服務(wù),服務(wù)的執(zhí)行部分就是WebService.cs文件
現(xiàn)在打開WebService.cs文件來編輯邏輯部分實(shí)行一個簡單的《客戶端調(diào)用web服務(wù)實(shí)現(xiàn)一個簡單的加法運(yùn)算,并返回以字符串給客戶端運(yùn)算結(jié)果》
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/* 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 服務(wù),請取消注釋以下行。 // [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { public WebService () { //如果使用設(shè)計的組件,請取消注釋以下行 //InitializeComponent(); } /// <summary> /// 方法上頭的[WebMethod]是聲明一個web服務(wù)方法,如果你想寫個方法能讓客戶端調(diào)用并返回結(jié)果就必須在方法上頭標(biāo)注[WebMethod] /// 如果是只負(fù)責(zé)邏輯運(yùn)算或私有方法,并不打算給客戶端結(jié)果,只給類方法內(nèi)部調(diào)用就無需聲明[WebMethod] /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns>將運(yùn)算結(jié)果轉(zhuǎn)換成字符串返回</returns> [WebMethod] public string HelloWorld( int a, int b) { int result = a + b; return result.ToString(); } } |
上面的代碼寫了一個基本的方法供遠(yuǎn)程調(diào)用,將cs文件保存后,一個簡單的web服務(wù)就創(chuàng)建了!
下面我們啟動這個項(xiàng)目,用瀏覽器查看微軟為我們定義測試的調(diào)用頁面:
在這里我們可以看到我們寫的Hello方法可以調(diào)用了,我們單擊進(jìn)入這個方法進(jìn)入調(diào)用調(diào)試頁面:
輸入?yún)?shù),我們寫的是一個簡單的加法運(yùn)算,參數(shù)便是我們寫的HelloWorld方法的參數(shù)a和b,我們輸入兩個整數(shù)點(diǎn)擊調(diào)用,出現(xiàn)如下結(jié)果:
下面是web服務(wù)返回的結(jié)果,其中133就是HelloWorld參數(shù)a+b返回的結(jié)果:
1
2
|
<? xml version = "1.0" encoding = "UTF-8" ?> < string xmlns = "http://tempuri.org/" >133</ string > |
到這里,以后我們想要調(diào)用一個web服務(wù)就可以通過以上方式把客戶端從服務(wù)器獲取數(shù)據(jù),訪問:"主機(jī)名/web服務(wù)名.asmx"就可以調(diào)用了。
得到的數(shù)據(jù)是個XML,所以客戶端得到數(shù)據(jù)后需要客戶端解析XML文件。
注意:以上創(chuàng)建在瀏覽器調(diào)用的web服務(wù)僅供本地計算機(jī)調(diào)試使用,需要配置web.config(之前提到過)才能實(shí)現(xiàn)遠(yuǎn)程調(diào)用調(diào)試
如果不配置,在遠(yuǎn)程調(diào)用會出現(xiàn):測試窗體只能用于來自本地計算機(jī)的請求解決 的問題。
如需遠(yuǎn)程調(diào)用可以參考一下方法:
在網(wǎng)站的解決方案的下方找到web.config
打開后添加如下配置即可:
1
2
3
4
5
6
7
8
|
< system.web > < webServices > < protocols > < add name = "HttpGet" /> < add name = "HttpPost" /> </ protocols > </ webServices > < system.web > |
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。