多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

aspnet教程

  • ASP.NET 教程
  • ASP.NET 簡介
  • ASP.NET Razor

    ASP.NET MVC

    ASP.NET 編程指南

    ASP.NET Web 服務

    閱讀 (2296)

    Web 服務

    Web 服務是一個基于網絡的功能,可被 web 應用通過 web 網絡協議獲取。web 服務開發主要包含以下三方面:

    • 創建 web 服務
    • 創建代理服務器
    • 使用 web 服務

    創建 web 服務

    一個 web 服務就是一個 web 應用,基本形式為一個類包含可以被其他應用調用的多個方法,它也采用隱藏代碼結構例如 ASP.NET 網頁,但它不存在用戶接口。

    為了更好地理解這個概念讓我們創建一個提供股票價格信息的 web 服務。該服務的客戶端可以通過股票的標簽查詢相關的名字和價格。為了簡化這個例子,我們設置股票價格為固定值,保存在一個二維列表中。這個 web 服務包含三個方法:

    • 一個默認的 HelloWorld 方法
    • 一個 GetName 方法
    • 一個 GetPrice 方法

    采取以下步驟創建該服務:

    步驟 (1) : 在 Visual Studio 中選擇 File -> New -> Web Site,然后選擇 ASP.NET Web Service。

    步驟 (2) : 一個名為 Service.asmx 的 web 服務文件和它的代碼被隱藏,Service.cs 會在這個工程的 App_Code 路徑下被創建。

    步驟 (3) : 將文件名修改為 StockService.asmx 和 StockService.cs。

    步驟 (4) : .asmx 文件簡化了一個 WebService 指令如下:

    <%@ WebService Language="C#" CodeBehind="~/App_Code/StockService.cs" 
    Class="StockService" %> 

    步驟 (5) : 打開 StockService.cs 文件,在該文件里生成的代碼是 Hello World 服務的基礎代碼。默認的 web 服務代碼如下:

        using System;
        using System.Collections;
        using System.ComponentModel;
        using System.Data;
        using System.Linq;
    
        using System.Web;
        using System.Web.Services;
        using System.Web.Services.Protocols;
    
        using System.Xml.Linq;
    
        namespace StockService
        {
           // <summary>
           // Summary description for Service1
           // <summary>
    
           [WebService(Namespace = "http://tempuri.org/")]
           [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
           [ToolboxItem(false)]
    
           // To allow this Web Service to be called from script, 
           // using ASP.NET AJAX, uncomment the following line. 
           // [System.Web.Script.Services.ScriptService]
    
           public class Service1 : System.Web.Services.WebService
           {
              [WebMethod]
    
              public string HelloWorld()
              {
                 return "Hello World";
              }
           }
        }

    步驟 (6) : 修改文件內的代碼增加一個存儲了各股票標簽,名稱和價格的字符串的二維指針,并編寫獲取股票信息的兩個 web 方法如下;

        using System;
        using System.Linq;
    
        using System.Web;
        using System.Web.Services;
        using System.Web.Services.Protocols;
    
        using System.Xml.Linq;
    
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    
        // To allow this Web Service to be called from script, 
        // using ASP.NET AJAX, uncomment the following line. 
        // [System.Web.Script.Services.ScriptService]
    
        public class StockService : System.Web.Services.WebService
        {
           public StockService () {
          //Uncomment the following if using designed components 
          //InitializeComponent(); 
           }
    
           string[,] stocks =
           {
              {"RELIND", "Reliance Industries", "1060.15"},
              {"ICICI", "ICICI Bank", "911.55"},
              {"JSW", "JSW Steel", "1201.25"},
              {"WIPRO", "Wipro Limited", "1194.65"},
              {"SATYAM", "Satyam Computers", "91.10"}
           };
    
          [WebMethod]
           public string HelloWorld() {
              return "Hello World";
           }
    
          [WebMethod]
           public double GetPrice(string symbol)
           { 
              //it takes the symbol as parameter and returns price
              for (int i = 0; i < stocks.GetLength(0); i++)
              {
                 if (String.Compare(symbol, stocks[i, 0], true) == 0)
                 return Convert.ToDouble(stocks[i, 2]);
              }
    
              return 0;
           }
    
           [WebMethod]
           public string GetName(string symbol)
           {
              // It takes the symbol as parameter and 
              // returns name of the stock
              for (int i = 0; i < stocks.GetLength(0); i++)
              {
                 if (String.Compare(symbol, stocks[i, 0], true) == 0)
                 return stocks[i, 1];
              }
    
              return "Stock Not Found";
           }
        }

    步驟 (7) : 運行 web 服務應用給出了一個 web 服務測試頁面,我們可以在該頁面測試服務方法。

    步驟 (8) : 點擊一個方法名字,確認它是否在正確運行。

    步驟 (9) : 為檢測 GetName 方法,提供已經被定義的股票標簽中的一個,正確的話會返回相關股票的名稱。

    使用 Web 服務

    為使用該 web 服務,我們在相同的解決方案(Solution)下創建一個網站,只需在解決方案管理器上右擊該解決方案名字即可,web 服務調用的網頁應具有一個控制管理以顯示返回的結果和兩個控制按鈕,一個用于返回另一個用于開始調用服務。

    web 應用的文件內容如下:

        <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="wsclient._Default" %>
    
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
        <html xmlns="http://www.w3.org/1999/xhtml" >
    
           <head runat="server">
              <title>
                 Untitled Page
              </title>
           </head>
    
           <body>
    
              <form id="form1" runat="server">
                 <div>
    
                     <h3>Using the Stock Service</h3>
    
                     <br /> <br />
    
                     <asp:Label ID="lblmessage" runat="server"></asp:Label>
    
                     <br /> <br />
    
                     <asp:Button ID="btnpostback" runat="server" onclick="Button1_Click" Text="Post Back" style="width:132px" />
    
                     <asp:Button ID="btnservice" runat="server" onclick="btnservice_Click"  Text="Get Stock" style="width:99px" />
    
                  </div>
              </form>
    
           </body>
        </html>

    web 應用的代碼如下:

        using System;
        using System.Collections;
        using System.Configuration;
        using System.Data;
        using System.Linq;
    
        using System.Web;
        using System.Web.Security;
        using System.Web.UI;
        using System.Web.UI.HtmlControls;
        using System.Web.UI.WebControls;
        using System.Web.UI.WebControls.WebParts;
    
        using System.Xml.Linq;
    
        //this is the proxy
        using localhost;
    
        namespace wsclient
        {
           public partial class _Default : System.Web.UI.Page
           {
               protected void Page_Load(object sender, EventArgs e)
               {
                   if (!IsPostBack)
                   {
                       lblmessage.Text = "First Loading Time: " +  DateTime.Now.ToLongTimeString
                   }
                   else
                   {
                       lblmessage.Text = "PostBack at: " + DateTime.Now.ToLongTimeString();
                   }
               }
    
               protected void btnservice_Click(object sender, EventArgs e)
               {
                   StockService proxy = new StockService();
                   lblmessage.Text = String.Format("Current SATYAM Price:{0}",
                   proxy.GetPrice("SATYAM").ToString());
               }
          }
        }

    創建代理服務器

    代理服務器指的是一個 web 服務代碼的代替者。在使用 web 服務之前,我們必須創建一個代理服務器。這個代理服務器是由客戶端應用注冊的。然后客戶端應用實現調用 web 服務使之像在使用一個本地方法一樣。

    該代理服務器將調用,并用適當的格式將調用像發送 SOAP 請求一樣發送到服務器。SOAP 支持簡單對象訪問協議(Simple Object Access Protocol)。該協議適用于 web 服務數據交換。

    當此服務器響應并返回一個 SOAP 包給客戶端時,代理服務器將一切呈現給客戶端應用程序。

    使用 btnservice_click 調用 Web 服務之前,Web 應用應該被添加到應用程序。這將透明地創建一個代理類,可由 btnservice_click 事件使用。

        protected void btnservice_Click(object sender, EventArgs e)
        {
           StockService proxy = new StockService();
           lblmessage.Text = String.Format("Current SATYAM Price: {0}", 
           proxy.GetPrice("SATYAM").ToString());
        }

    采取以下步驟創建代理:

    步驟 (1) : 在解決方案管理器(SolutionExplorer)的 web 應用入口處右擊選擇 ‘Add Web Reference’。

    步驟 (2) : 選擇 ‘Web Services in this solution’,會返回我們編寫的股票服務引用。

    步驟 (3) : 點擊該服務打開測試頁面,創建代理時默認為 ‘localhost’,當然你也可以進行重命名。點擊 ‘Add Reference’ 來實現向客戶端應用程序添加一個代理。

    在代碼中加入以下語句使之包含該代理:

    using localhost;
    關閉
    程序員人生
    主站蜘蛛池模板: 日本性一级 | 在线五月婷婷 | 求免费黄色网址 | 午夜精品久久久久久中宇 | 天堂俺去俺来也www久久婷婷 | 欧美色人阁 | 国产福利视频一区二区三区四区 | 国产欧美国产精品第二区 | 久久国产精品免费一区二区三区 | 在线日本中文字幕 | 国产精品11页 | 国产日韩精品欧美一区喷 | 中文字幕一区二区三区永久 | 国产第一页无线好源 | 爽好舒服快奶水视频 | jizzjizzjizz亚洲18| 中文字幕第一页在线视频 | 国产精品亚洲综合一区 | 欧美成人免费全部色播 | 亚洲小视频 | 亚洲天堂视频在线观看 | 国产v精品欧美精品v日韩 | 亚洲精品不卡在线 | 久久精品亚洲欧美日韩久久 | 国产三级在线观看视频 | 亚洲欧美乱综合图片区小说区 | 国产91精品高清一区二区三区 | 精品乱人伦一区二区 | 日韩 亚洲 欧美 中文 高清 | 亚洲成a人片在线观看www流畅 | 午夜精品国产爱在线观看不卡 | 亚洲天堂一区二区三区四区 | 韩国片在线观看 | 亚洲国产www | 性色影院 | 欧美日韩一二三四区 | 午夜欧美在线 | 欧美另类精品xxxx人妖换性 | 欧美专区一区 | 久久精品一区二区国产 | 国产亚洲福利精品一区 |