關於WebService的做用和好處,你們應該都瞭解。但如何在Asp.Net中添加Web Service等問題一直是新手朋友的一大難題。鑑於網上沒有一個像樣的實際案例,特將課程設計中運用到的WebService(在Asp.Net中添加實時天氣預報的案例)粘貼出來,並附上我的的理解。以便於新手朋友快速入門WebService,幫助新手朋友快速的掌握和理解如何在ASP.NET中創建這種引用,實現網頁上面的高大效果。對於本文,歡迎轉載,但請標明文章出處:itred.cnblogs.com。歡迎各位大神拍磚,指正!郵箱:it_red@sina.com。web
本案例的開發環境是:visual studio 2010 數組
後臺開發的語言:C#瀏覽器
首先簡單介紹一下WebService:服務器
個人理解就是引用別個程序的接口。經過這個提供web服務的接口方法在本身的網絡平臺上實現須要應用的那個程序平臺的服務。而這個應用是和語言無關,和開發平臺無關,實際上就是經過這個服務,能夠調用任何平臺的任何功能程序,可是前提是這個應用程序是提供了這樣的接口供其餘用戶調用。網絡
我實現的這個DEMO就是經過本身的ASP.NET調用這個網站目錄下提供的WebService服務,其網址爲:http://www.webxml.com.cn/zh_cn/index.aspx。頁面以下:架構
經過調用,在我本身的ASP.NET 頁面上顯示如上天氣預報的相關信息。框架
我認爲應該瞭解的關於WebService的基本特徵:ide
(1) 互操做性:任何的 Web Service均可以與其餘 Web Service進行交互。因爲有了SOAP這個全部主要供應商都支持的新標準協議,於是避免了在CORBA、DCOM 和其餘協議之間轉換的麻煩。還由於可使用任何語言來編寫 Web Service,所以開發者無需更改其開發環境,就可編寫和使用 Web Service;工具
(2) 廣泛性:Web Service使用 HTTP 和 XML 進行通訊。所以,任何支持這些技術的設備均可以擁有和訪問 Web Service。你能夠經過Internet Explore瀏覽器來訪問它,你甚至也能夠經過智能手機來訪問它;佈局
(3) Web 服務的一個重要特徵是支持鬆散耦合。一個應用程序能夠分解爲多個邏輯服務組件,其中的每一個服務組件均可以使用結構框架構建,也能夠在物理上分佈於多個計算機之間。鬆散耦合的另外一個重要方面是 Web 服務只在須要時實時集成。
下面是個人DEMO的實現過程:
3. 添加一些配置信息:
第一步:在URL中添加提供這個WebService的網址,本DEMO中的天氣預報服務的網址是:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx;
第二步:在Web引用名中,咱們採用默認給出的名稱:cn.com.webxml.webservice;
第三步:點擊添加引用,即確認了該WebService.
4. 咱們須要顯示天氣的圖標,此時,咱們須要在webservice 提供的服務上面下載一些相關的圖標和一些說明性文檔;
點擊進入後看到的頁面以下示:
打開這個pdf的文檔,找到下面的網址,下載關於天氣的圖標:
具體的網址可複製以下:
相關連接:
部分JAVA開發工具在調用由.NET開發的WEB服務時WSDL出錯請訪問如下鏈
接:http://www.webxml.com.cn/h/6C533855614658756258513D.aspx
Web Services GET 方法調
用:http://www.webxml.com.cn/h/7A636E424F763363446B303D.aspx
Java調用.Net WebService 發生異常:服務器未能識別 HTTP 頭 SOAPAction 的值:
http://www.webxml.com.cn/h/5A416E4C4F6A31526D4D453D.aspx
JAVA讀 .NET開發的WEB服務 DataSet 數據可參考如下鏈
接:http://download.csdn.net/source/698391 , http://www.webxml.com.cn/d/44587637
472B4E426377453D.aspx,http://www.webxml.com.cn/h/4F65627450716E5A6832493D
.aspx
C# 轉 VB.net:http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx
VB.net 轉 C#:http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx
服務支持 http://www.webxml.com.cn/zh_cn/support.aspx
下載中心 http://www.webxml.com.cn/zh_cn/download_center.aspx
天氣圖標下載:http://www.webxml.com.cn/images/weather.zip
天氣現象和圖例:http://www.webxml.com.cn/zh_cn/weather_icon.aspx
部分城市/地區表明圖片:http://www.webxml.com.cn/files/city_photo.zip
部分城市/地區介紹和睦候背景資料:http://www.webxml.com.cn/files/about_city.zip
下載後,將weather文件夾拷貝到本身創建的網站目錄下,新建一個測試性的Asp.net網頁Default.aspx,如今的網站基本目錄結構以下圖所示:
5.根聽說明文檔,創建本身須要的數據信息數組,寫本身的網頁顯示。調用給出的數據信息。
頁面佈局以下:
在後臺的頁面中須要將dropdownlist的屬性進行以下設置:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged"> </asp:DropDownList> <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList2_SelectedIndexChanged"> </asp:DropDownList>
這個aspx頁面後臺的C#源代碼爲:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; public partial class _Default : System.Web.UI.Page { cn.com.webxml.webservice.WeatherWS proxy1; String[] weathers; string cityCode; DataSet ds; protected void Page_Load(object sender, EventArgs e) { proxy1 = new cn.com.webxml.webservice.WeatherWS();//生成代理 if (!Page.IsPostBack) { ds = proxy1.getRegionDataset(); DropDownList1.DataSource = ds.Tables[0]; DropDownList1.DataTextField = "RegionName"; DropDownList1.DataValueField = "RegionID"; DropDownList1.DataBind(); ds = proxy1.getSupportCityDataset(DropDownList1.SelectedItem.ToString()); DropDownList2.DataSource = ds.Tables[0]; DropDownList2.DataTextField = "CityName"; DropDownList2.DataValueField = "CityID"; DropDownList2.DataBind(); } } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { ds = proxy1.getSupportCityDataset(DropDownList1.SelectedItem.ToString()); DropDownList2.DataSource = ds.Tables[0]; DropDownList2.DataTextField = "CityName"; DropDownList2.DataValueField = "CityID"; DropDownList2.DataBind(); } protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e) { cityCode = DropDownList2.SelectedItem.ToString(); weathers = proxy1.getWeather(cityCode, ""); Label1.Text = weathers[8]; Label2.Text = weathers[13]; Label3.Text = weathers[18]; Label4.Text = weathers[9]; Label5.Text = weathers[14]; Label6.Text = weathers[19]; Label7.Text = weathers[7]; Label8.Text = weathers[12]; Label9.Text = weathers[17]; Image1.ImageUrl = "weather/" + weathers[10]; Image2.ImageUrl = "weather/" + weathers[15]; Image3.ImageUrl = "weather/" + weathers[20]; } }
6. 運行效果以下圖所示:
至此,一個關於WebService的案例就順利完成了。我相信你也應該能理解這種服務的特色了吧。
如有任何問題,歡迎至郵:it_red@sina.com
-----------------------------------------版權全部! 轉載請標明出處:itred.cnblogs.com-----------------------------------------