C#如何創建一個簡單的WebService程序並調用?


1.WebService概念

Web Service技術, 能使得運行在不同機器上的不同應用無須借助附加的、專門的第三方軟件或硬件, 就可相互交換數據或集成。依據Web Service規范實施的應用之間, 無論它們所使用的語言、 平台或內部協議是什么, 都可以相互交換數據。

簡單的說,WebService就是一種跨編程語言和跨操作系統平台的遠程調用技術。所謂跨編程語言和跨操作平台,就是說服務端程序采用C#編寫,客戶端程序則可以采用其他編程語言編寫,反之亦然。跨操作系統平台則是指服務端程序和客戶端程序可以在不同的操作系統上運行。 遠程調用,就是一台計算機的應用可以調用其他計算機上的應用。例如:支付寶,支付寶並沒有銀行卡等數據,它只是去調用銀行提供的接口來獲得數據。還有天氣預報等,也是氣象局把自己的系統服務以webservice服務的形式暴露出來,讓第三方網站和程序可以調用這些服務功能。

 

2.WebService的原理

WebService采用Http協議來在客戶端和服務端之間傳輸數據。WebService使用XML來封裝數據,XML主要的優點在於它是跨平台的。

WebService通過HTTP協議發送請求和接收結果時,發送的請求內容和結果內容都采用XML格式封裝,並增加了一些特定的HTTP消息頭,以說明HTTP消息的內容格式,這些特定的HTTP消息頭和XML內容格式就是SOAP協議規定的。

WebService服務器端首先要通過一個WSDL文件來說明自己有什么服務可以對外調用。簡單的說,WSDL就像是一個說明書,用於描述WebService及其方法、參數和返回值。 WSDL文件保存在Web服務器上,通過一個url地址就可以訪問到它。客戶端要調用一個WebService服務之前,要知道該服務的WSDL文件的地址。WebService服務提供商可以通過兩種方式來暴露它的WSDL文件地址:1.注冊到UDDI服務器,以便被人查找;2.直接告訴給客戶端調用者。

 

3.提供一些免費的WebService服務的網站:

http://www.webxml.com.cn/zh_cn/index.aspx

 

4.客戶端實現的幾種方式?

  • Wsimport
  • Service
  • HttpURLConnection
  • Ajax調用方式

 

一、使用C#語言和VS開發環境實現並調用WebService服務。

1.創建一個WebForm應用程序,博主新建的是MVC項目,這都無所謂沒關系的,不影響使用WebService。

 

 

 2.在項目中右擊【添加】——【Web服務.asmx】文件。

 

 

 3.提供一個方法,用來給別的應用程序調用的。

[WebMethod]:這個特性標簽表示將該方法對外公開,允許別的應用程序調用該方法。

 

 

 4.一個簡單的WebService服務器就已經實現好了,我們可以右擊【Web服務.asmx】,然后點擊【在瀏覽器查看】,然后在瀏覽器中可以看到這樣一個界面,可以看到上面有2個方法,說明這2分方法可以對外開發,可以被調用。

 

 

 5.服務端寫好了,現在開始編寫客戶端代碼,用來調用服務端的程序。我們在重新新建一個WebForm應用程序。

 

 

 6.然后點擊【服務】——【添加服務引用】

 

 

 7.然后看到這個界面,將服務端提供的asmx路徑賦值下來粘貼到這里。

 

 

 8.然后點擊【轉到】,可以看到已經有服務了。

 

 

 

 

 

 9.然后新建一個WebForm窗體。

 

 

 10在按鈕的單擊事件中寫代碼。先引入命名空間,然后調用里面的方法。

 protected void Button1_Click(object sender, EventArgs e)
        {
            ServiceServer.Test_WebServiceSoapClient client = new ServiceServer.Test_WebServiceSoapClient();

            int a = int.Parse(this.TextBox1.Text.ToString());
            int b = int.Parse(this.TextBox2.Text.ToString());

            int sum = client.Add(a, b);
            this.Label1.Text = sum.ToString();
        }

11最后運行測試


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM