進階之路—WebService的布置以及調用

當下web橫行的年代顽聂,為滿足不同的業(yè)務需求使用不同的技術,甚至語言可謂是屢見不鮮么伯,究其原因還是那句話:沒有最好的技術疟暖,只有最符合的技術,一切都是為了業(yè)務服務田柔。那么在編程語言不同的情況下俐巴,傳遞數據成了一個項目中難以解決的問題,于是SOA技術就此誕生硬爆。

SOA :面向服務編程欣舵,嚴格來講, SOA 應該算的上是一種程序架構的方法摆屯,也可以說的上是一種思想邻遏。究其產生的原因糠亩,主要就是項目中的模塊越來越多,但是模塊和模塊之間存在語言沖突准验,沒有辦法完成很好的交互赎线,于是 SOA 應運而生。

那么在c#中常用的解決交互問題的方法都有什么呢糊饱,當然不僅僅是 Web Service 一種垂寥,除了 Web Service 之外,還有 WCF 以及 WebAPI 另锋。本章就單純的講一講Web Service的使用滞项。

Web Service:既然是存在交互問題,那么肯定就是有個平臺夭坪,那么首先我們先打開兩個 vs2017 文判。并建立程序,命名為 MyWebTest 的 MVC 項目室梅,在 MyWebTest 中新建文件夾 WebService戏仓,我們被調用的方法就要寫在這里邊。并在里邊新建一個web服務項目(asmx)

新建的asmx文件
程序目錄


接下來我們看一下生成的asmx文件里邊到底有什么


很簡潔亡鼠,只有一個叫 [ WebMethod ] 的特性赏殃。接下來我們手動添加一個方法


很簡單的傳參加法

然后我們嘗試打開這個頁面

打開后的asmx文件

可以看到,我們寫在程序的方法在頁面中是有顯示的间涵,我們可以看一下仁热,此時點擊調用會出錯,因為我們能建立的是 MVC 項目勾哩,而 MVC 項目是使用路由控制跳轉地址的抗蠢,所以我們需要在路由里邊進行一下修改

這樣就可以運行并調用成功了。接下來我們打開另一個vs2017平臺思劳,建立一個項目物蝙,我建立的單元測試項目,也可以建立別的項目敢艰。起名為WebServiceTest。

我們可以看到册赛,在自動生成的 UnitTest 中自動填充了部分代碼钠导,其中 [ TestClass ] 特性標記的是類,表示這是一個測試類森瘪, [ TestMethod ] 標記的是方法牡属,值得一提的是如果不使用該特性標記某方法的話,那么在測試調試的時候是找不到那個方法的扼睬。接下來逮栅,就是需要將剛剛寫好的 Web Service 引用到這個測試類中悴势。

添加服務引用

然后我們就可以在測試類中使用發(fā)布在服務器上的方法了。


在這里解釋一下斷言措伐,斷言是測試類里邊特有的封裝方法特纤,是為了滿足測試的時候當出現又返回結果但是返回結果與預期不符的時候測試不能成功而出現的方法,比如上圖侥加。在斷言里邊調用add方法傳入1和2捧存,得到的應該是3,此時與后面的結果是一致的担败,那么這個測試方法就是可以通過的昔穴,否則是不能通過的。

最后我們再來說一說 Web Service 的權限認證問題提前,其實一般在 Web Service 中我們是不考慮權限問題的吗货,因為基本都是企業(yè)內部的使用,但是當下的時代狈网,安全是最重要的宙搬,所以為了以防萬一,我們還是說一說權限的問題孙援,在 Web Service 中權限認證是可以通過Soap協(xié)議的Header來實現的害淤。具體實現方式如下:

1.首先建立一個實體類,用來盛放用戶驗證信息的拓售,注意窥摄,這個實體類一定要繼承自SoapHeader

CustomSoapHeader實體類

2.接下來我們在代碼里進行一些修改

修改之后的代碼

這下我們在運行一下add方法試試,

得到的結果是-1

可以看到础淤,得到的結果并不是3而是-1崭放,這說明用戶權限的校驗已經生效了。接下來我們試一試遠程調用的時候用戶權限校驗是否可用


我們直接看斷言的結果:

得到的結果

從結果上看鸽凶,我們已經成功了币砂,i 得到了想要的3,用戶驗證的權限問題也完成了玻侥。

以上就是對 Web Service 的基本應用决摧,學到新東西之后會持續(xù)更新。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末凑兰,一起剝皮案震驚了整個濱河市掌桩,隨后出現的幾起案子,更是在濱河造成了極大的恐慌姑食,老刑警劉巖波岛,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異音半,居然都是意外死亡则拷,警方通過查閱死者的電腦和手機贡蓖,發(fā)現死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煌茬,“玉大人斥铺,你說我怎么就攤上這事⌒担” “怎么了仅父?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長浑吟。 經常有香客問我笙纤,道長,這世上最難降的妖魔是什么组力? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任省容,我火速辦了婚禮,結果婚禮上燎字,老公的妹妹穿的比我還像新娘腥椒。我一直安慰自己,他們只是感情好候衍,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布笼蛛。 她就那樣靜靜地躺著,像睡著了一般蛉鹿。 火紅的嫁衣襯著肌膚如雪滨砍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天妖异,我揣著相機與錄音惋戏,去河邊找鬼。 笑死他膳,一個胖子當著我的面吹牛响逢,可吹牛的內容都是我干的。 我是一名探鬼主播棕孙,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼舔亭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蟀俊?” 一聲冷哼從身側響起分歇,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎欧漱,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體葬燎,經...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡误甚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年缚甩,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窑邦。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡擅威,死狀恐怖,靈堂內的尸體忽然破棺而出冈钦,到底是詐尸還是另有隱情郊丛,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布瞧筛,位于F島的核電站厉熟,受9級特大地震影響,放射性物質發(fā)生泄漏较幌。R本人自食惡果不足惜揍瑟,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乍炉。 院中可真熱鬧绢片,春花似錦、人聲如沸岛琼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽槐瑞。三九已至熙涤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間随珠,已是汗流浹背灭袁。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窗看,地道東北人茸歧。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像显沈,于是被迫代替她去往敵國和親软瞎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345