WebService開發應用

WebService是運行於服務端(通常放在信息服務器上的)讓客戶端來調用的。html

如下開發兩個簡單的實例web

1.本身開發服務端本身調用(vs2010)瀏覽器

   1).菜單:「新建-項目」,在打開的窗體中選擇,以下圖:服務器

    2).在「項目解決方案」中右擊此項目並「添加-新建項」,而後選擇"web服務",以下圖app

  3).打開新添加的頁面,在其中加入四個函數,必定在四個函數的上方加上「[WebMethod]」,這是說明讓客戶端來調用的函數,若是上面沒有或註釋掉,就表示客戶端不能訪問它。下面把它默認的HelloWord函數註釋,源碼以下:函數

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace MyWebServices
{
    /// <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(Description="相加")]
        public double Add(double num1, double num2)
        {
            return num1 + num2;
        }

        [WebMethod(Description = "相減")]
        public double Sub(double num1, double num2)
        {
            return num1 - num2;
        }

        [WebMethod(Description = "相乘")]
        public double Mul(double num1, double num2)
        {
            return num1 * num2;
        }

        [WebMethod(Description = "相除")]
        public double Div(double num1, double num2)
        {
            if (num2 != 0)
                return num1 / num2;
            else
                return 0;
        }
    }
}

4).在瀏覽器中運行WebService1.asmx,即在「解決方案」中右鍵WebService1.asmx,在"瀏覽器中運行",如下爲運行圖,會發現HelloWord函數沒顯示出來網站

5).開發客戶端。this

  •     創建一空的WebApplication程序
  •     在「解決方案」中右鍵此項目「添加web引用」,會彈出一窗體,讓用戶輸入wsdl的URL.設置Web引用名的名稱並點擊添加引用,此時會在項目中出現一個這樣服務的圖標。以下圖:
  • 增長一webForm,它的HTML源碼爲:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!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></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <input id="Text1" type="text" runat="Server" /><select id="Select1" name="D1" runat="Server" >
            <option>+</option>
            <option>-</option>
            <option>*</option>
            <option>/</option>
        </select><input id="Text2" type="text" runat="Server" /><asp:Button ID="Button1" 
            runat="server" Text="=" onclick="Button1_Click" />
        <input id="Text3" type="text" runat="Server" /></div>
    </form>
</body>
</html>

cs源碼(按鈕事件):spa

 protected void Button1_Click(object sender, EventArgs e)
        {
            string op = Select1.Value;
            if (Text1.Value == string.Empty || Text2.Value == string.Empty)
                return;
            double num1 = double.Parse(Text1.Value);
            double num2 = double.Parse(Text2.Value);
            double result=0;
            MyTest.WebService1 ws=new MyTest.WebService1();
            if (op.Equals("+"))
                result = ws.Add(num1, num2);
            else if (op.Equals("-"))
                result = ws.Sub(num1, num2);
            else if (op.Equals("*"))
                result = ws.Mul(num1, num2);
            else if (op.Equals("/"))
                result = ws.Div(num1, num2);
            Text3.Value = result.ToString();

        }
  • 運行客戶端,以下圖,此時成功運行:

  2.調用其它的WebService服務,此例咱們調用http://www.webxml.com.cn中的查詢手機號碼的服務,打開此網站下的"所有WebService",能夠看到以下圖:code

      1).新建 一個普通的WinForm程序,界面以下:

     

   2).在新建的項目上右鍵"添加服務引用",在地址欄上粘貼http://www.webxml.com.cn中手機查詢服務中的隨便一個地址,命名空間本身設置,以下圖:

   3).點擊上圖中的「肯定」按鈕,此時會把這個相關的服務加入到此項目中,如圖:

   4).在winForm中的button源碼以下:

   

        private void button1_Click(object sender, EventArgs e)
        {
            ServiceReference1.MobileCodeWSSoapClient mms = new ServiceReference1.MobileCodeWSSoapClient("MobileCodeWSSoap12"); *
            string s= mms.getMobileCodeInfo(this.textBox1.Text.Trim(),"");
            MessageBox.Show(s);

        }

    *號處的參數是說明用soap的哪一種協議的,咱們在添加webservice服務後會自動增長一個app.config文件,打開此文件會在文件下面看到以下的代碼:

<client>
            <endpoint address="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx"
                binding="basicHttpBinding" bindingConfiguration="MobileCodeWSSoap"
                contract="ServiceReference1.MobileCodeWSSoap" name="MobileCodeWSSoap" />
            <endpoint address="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx"
                binding="customBinding" bindingConfiguration="MobileCodeWSSoap12"
                contract="ServiceReference1.MobileCodeWSSoap" name="MobileCodeWSSoap12" />
        </client>

此參數輸入name的值就能夠了。

   5).運行效果圖:

   

 

終結:

    在調用時先引用WebService服務,再建立它的實例,而後再調用它的函數便可。

相關文章
相關標籤/搜索