C#挪用WebService實例開辟。本站提示廣大學習愛好者:(C#挪用WebService實例開辟)文章只能為提供參考,不一定能成為您想要的結果。以下是C#挪用WebService實例開辟正文
1、根本概念
Web Service也叫XML Web Service WebService是一種可以吸收從Internet或許Intranet上的其它體系中傳遞過去的要求,輕量級的自力的通信技巧。是:經由過程SOAP在Web上供給的軟件辦事,應用WSDL文件停止解釋,並經由過程UDDI停止注冊。簡略的懂得就是:webservice 就是放在辦事器上的函數,一切人都可以挪用,然後前往信息。 好比谷歌就有一個web service ,你挪用它便可以很輕易的做一個搜刮網站。 就像挪用函數一樣,傳入若干參數(好比症結字、字符編碼等),然後就可以前往谷歌檢索的內容(前往一個字符串)。
個中,Soap:(Simple Object Access Protocol)簡略對象存取協定。是XML Web Service 的通訊協定。當用戶經由過程UDDI找到你的WSDL描寫文檔後,他經由過程可以SOAP挪用你樹立的Web辦事中的一個或多個操作。SOAP是XML文檔情勢的 挪用辦法的標准,它可以支撐分歧的底層接口,像HTTP(S)或許SMTP。
WSDL:(Web Services Description Language) WSDL 文件是一個 XML 文檔,用於解釋一組 SOAP 新聞和若何交流這些新聞。年夜多半情形下由軟件主動生成和應用。
UDDI (Universal Description, Discovery, and Integration) 是一個重要針對Web辦事供給商和應用者的新項目。在用戶可以或許挪用Web辦事之前,必需肯定這個辦事內包括哪些商務辦法,找到被挪用的接口界說,還要在服 務端來編制軟件,UDDI是一種依據描寫文檔來引誘體系查找響應辦事的機制。UDDI應用SOAP新聞機制(尺度的XML/HTTP)來宣布,編纂,閱讀 和查找注冊信息。它采取XML格局來封裝各類分歧類型的數據,而且發送到注冊中間或許由注冊中間來前往須要的數據。
2、長處缺陷
Web Service的重要目的是跨平台的可互操作性。為了完成這一目的,Web Service 完整基於XML(可擴大標志說話)、XSD(XML Schema)等自力於平台、自力於軟件供給商的尺度,是創立可互操作的、散布式運用法式的新平台。是以應用Web Service有很多長處:
1、跨防火牆的通訊
假如運用法式有不計其數的用戶,並且散布活著界各地,那末客戶端和辦事器之間的通訊將是一個辣手的成績。由於客戶端和辦事器之間平日會有防火牆 或許署理辦事器。傳統的做法是,選擇用閱讀器作為客戶端,寫下一年夜堆ASP頁面,把運用法式的中央層裸露給終究用戶。如許做的成果是開辟難度年夜,法式很難 保護。 如果客戶端代碼不再如斯依附於HTML表單,客戶真個編程就簡略多了。假如中央層組件換成Web Service的話,便可以從用戶界面直接挪用中央層組件,從而免卻樹立ASP頁面的那一步。要挪用Web Service,可以直接應用Microsoft SOAP Toolkit或.net如許的SOAP客戶端,也能夠應用本身開辟的SOAP客戶端,然後把它和運用法式銜接起來。不只延長了開辟周期,還削減了代碼復 雜度,並可以或許加強運用法式的可保護性。同時,運用法式也不再須要在每次挪用中央層組件時,都跳轉到響應的"成果頁"。
2、運用法式集成
企業級的運用法式開辟者都曉得,企業裡常常都要把用分歧說話寫成的、在分歧平台上運轉的各類法式集成起來,而這類集成將消費很年夜的開辟力氣。應 用法式常常須要從運轉的一台主機上的法式中獲得數據;或許把數據發送到主機或其它平台運用法式中去。即便在統一個平台上,分歧軟件廠商臨盆的各類軟件也常 常須要集成起來。經由過程Web Service,運用法式可以用尺度的辦法把功效和數據"裸露"出來,供其它運用法式應用。
XML Web services 供給了在松耦合情況中應用尺度協定(HTTP、XML、SOAP 和 WSDL)交流新聞的才能。新聞可所以構造化的、帶類型的,也能夠是松懈界說的。
3、B2B的集成
B2B 指的是Business to Business,as in businesses doing business with other businesses,商家(泛指企業)對商家的電子商務,即企業與企業之間經由過程互聯網停止產物、辦事及信息的交流。淺顯的說法是指停止電子商務生意業務的供 需兩邊都是商家(或企業、公司),她們應用了Internet的技巧或各類商務收集平台,完成商務生意業務的進程。
Web Service是B2B集成勝利的症結。經由過程Web Service,公司可以只需把症結的商務運用"裸露"給指定的供給商和客戶,便可以了,Web Service運轉在Internet上,活著界任何處所都可隨意馬虎完成,其運轉本錢就絕對較低。Web Service只是B2B集成的一個症結部門,還須要很多其它的部門能力完成集成。 用Web Service來完成B2B集成的最年夜利益在於可以隨意馬虎完成互操作性。只需把商務邏輯"裸露"出來,成為Web Service,便可以讓任何指定的協作同伴挪用這些商務邏輯,而不論他們的體系在甚麼平台上運轉,應用甚麼開辟說話。如許就年夜年夜削減了花在B2B集成上 的時光和本錢。
4、軟件和數據重用
Web Service在許可重用代碼的同時,可以重用代碼面前的數據。應用Web Service,不再必像之前那樣,要先從第三方購置、裝置軟件組件,再從運用法式中挪用這些組件;只須要直接挪用遠真個Web Service便可以了。另外一種軟件重用的情形是,把好幾個運用法式的功效集成起來,經由過程Web Service "裸露"出來,便可以異常輕易地把一切這些功效都集成到你的門戶站點中,為用戶供給一個同一的、友愛的界面。 可以在運用法式中應用第三方的Web Service 供給的功效,也能夠把本身的運用法式功效經由過程Web Service 供給給他人。兩種情形下,都可以重用代碼和代碼面前的數據。
從以上闡述可以看出,Web Service 在經由過程Web停止互操作或長途挪用的時刻是最有效的。不外,也有一些情形,Web Service基本不克不及帶來任何利益,Web Service有一下缺陷:
1、 單機運用法式
今朝,企業和小我還應用著許多桌面運用法式。個中一些只須要與本機上的其它法式通訊。在這類情形下,最好就不要用Web Service,只需用當地的API便可以了。COM異常合適於在這類情形下任務,由於它既小又快。運轉在統一台辦事器上的辦事器軟件也是如許。固然 Web Service 也能用在這些場所,但那樣不只消費太年夜,並且不會帶來任何利益。
2、 局域網的一些運用法式
在很多運用中,一切的法式都是在Windows平台下應用COM,都運轉在統一個局域網上。在這些法式裡,應用DCOM會比SOAP/HTTP 有用很多。與此相相似,假如一個.net法式要銜接到局域網上的另外一個.net法式,應當應用.net Remoting。其其實.net Remoting中,也能夠指定應用SOAP/HTTP來停止Web Service 挪用。不外最好照樣直接經由過程TCP停止RPC挪用,那樣會有用很多。
3、重要運用
1.最後的 XML Web Service 平日是可以便利地並入運用法式的信息起源,如股票價錢、氣象預告、體育成就等等。
2.以 XML Web Service 方法供給現有運用法式,可以構建新的、更壯大的運用法式,並應用 XML Web Service 作為結構塊。
例如,用戶可以開辟一個推銷運用法式,以主動獲得來自分歧供給商的價錢信息,從而應用戶可以選擇供給商,提交定單,然後跟蹤貨色的運輸,直至收 到貨色。而供給商的運用法式除在Web上供給辦事外,還可使用XML Web Service檢討客戶的信譽、收取貨款,並與貨運公司解決貨運手續。
以上內容,年夜多都是自創過去的,上面的實例開辟是本身經由過程懂得完成的
4、實例開辟
1.挪用已有webservice,完成氣象查詢
2.創立一個簡略的webservice,完成辦事接口挪用
由於兩個實例在一個項目中出現的,就綜合一點來記載,為今後本身須要用時做預備。
起首,來看下項目標目次構造
關於初學者來講,在vs2012情況中,年夜家有能夠不曉得Web References文件夾是若何來的,它是經由過程右擊項目,選擇個中的”添加辦事援用“,如圖所示:
以後,獲得”添加辦事援用“的頁面,我也把圖截了上去,如圖:
再選擇”高等“按鈕,進入下圖
依據上圖的指導,在URL這欄輸出互聯網上地下的WebServices(http://www.webxml.com.cn/WebServices/WeatherWebService.asmx)來完成氣象預告。如許便可以經由過程代碼來獲得用戶輸出城市的氣象了。完成的後果圖以下:
經由過程點擊按鈕,體系會輸入用戶所填城市的氣象信息。後台代碼以下:
protected void Button2_Click(object sender, EventArgs e) { WebApplication1.cn.com.webxml.www.WeatherWebService ws = new WebApplication1.cn.com.webxml.www.WeatherWebService(); string[] r = ws.getWeatherbyCityName(this.TextBox4.Text); this.TextBox3.Text = ""; if (r == null) { this.TextBox3.Text = "無" + this.TextBox4.Text + "城市的氣象信息"; return; } foreach (string i in r) { this.TextBox3.Text += i; } }
如許,經由過程挪用已有的氣象接口,便可以完成城市氣象的查詢了。
上面,我們再來講說,若何本身創立webservice,經由過程它來完成一些功效,起首,我們選中一個項目,右擊新建一個“Web辦事”,以下圖所示:
完成創立今後,就會在項目文件中湧現“Service.asmx”文件,我們在Service.asmx.cx中添加一個簡略的乞降辦法,代碼以下:
namespace Web_Service { /// <summary> /// WebService1 的摘要解釋 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要許可應用 ASP.NET AJAX 從劇本中挪用此 Web 辦事,請撤消正文以下行。 // [System.Web.Script.Services.ScriptService] public class WebService1 : System.Web.Services.WebService { [WebMethod]å public string HelloWorld() { return "Hello World"; } [WebMethod] public int GetSum(int a,int b) { return a+b; } } }
那末,我們怎樣在其它項目中挪用這個辦法呢,其實這和適才我們所說的,挪用氣象的webservice是一個事理,起首,經由過程添加“web辦事 援用”將,你寫的webservice援用出去,我們須要留意的是個中有一處要我們填寫要求webservice的URL地址,我們該怎樣寫?其實呢,也 很簡略,就是,你將Service.asms在閱讀器中閱讀的地址,如我的是:http://localhost:12197 /Service.asmx。
援用完成後,我們經由過程代碼來完成它,起首照樣來看下運轉後的後果圖:
最初,再貼上代碼:
protected void Button1_Click(object sender, EventArgs e) { WebApplication1.localhost.WebService1 aa = new WebApplication1.localhost.WebService1(); this.Label1.Text = aa.GetSum(Convert.ToInt32(this.TextBox1.Text), Convert.ToInt32(this.TextBox2.Text)).ToString(); }
以上就是關於C#挪用WebService實例開辟的全體內容,願望經由過程實際與現實的聯合,對年夜家完成WebService挪用有所贊助哦