zoukankan      html  css  js  c++  java
  • .net WebService的使用

    1. WebService可单独作为一个网站,不限平台的被调用。

    2. 打开VS,选择新建

      

    3. 

    [WebMethod] 方法上面有这个说明,则表示此方法可被外部调用。

    我们添加4个方法:加、减、乘、除。

    [WebMethod(Description = "求和的方法")]
    public double addition(double i, double j)
    {
      return i + j;
    }

    [WebMethod(Description = "求差的方法")]
    public double substract(double i, double j)
    {
      return i - j;
    }

    [WebMethod(Description = "求积的方法")]
    public double multiplication(double i, double j)
    {
      return i * j;
    }

    [WebMethod(Description = "求商的方法")]
    public double division(double i, double j)
    {
      if (j != 0)
        return i / j;
      else
        return 0;
    }

    添加完之后,可以直接运行VS查看。

     

    表示webservice已经完成。

    4. 将此网站,部署在IIS上,比如网站为:http://localhost:3001/Service.asmx

    打开这个网站即可查看webservice的内容

     

    5. 新建网站,调用webservice内容

    在项目上引用web服务。

     

     

    添加完成之后,在ASPX页面增加几个text框,进行加减乘除的运算。

    6.  页面:

    <body>
    <form id="form1" runat="server">
    <div>
      <asp:TextBox ID="Num1" runat="server"></asp:TextBox>
      <select id="selectOper" runat="server">
        <option>+</option>
        <option>-</option>
        <option>*</option>
        <option>/</option>
      </select>
      <asp:TextBox ID="Num2" runat="server"></asp:TextBox>
      <asp:Button ID="cau" Text=" = " runat="server"/>
      <asp:TextBox ID="Result" runat="server"></asp:TextBox>
    </div>
    </form>
    </body>

     后台:

    public partial class _Default : System.Web.UI.Page
    {
      protected void Page_Load(object sender, EventArgs e)
      {
        cau.Click += new EventHandler(btn_Click);
      }

    void btn_Click(object sender, EventArgs e)
    {
      if (Num1.Text != "" && Num2.Text != "")
      {
        double para1 = double.Parse(Num1.Text);
        double para2 = double.Parse(Num2.Text);
        //实例化引用的webservice对象
        localhost.Service WebserviceInstance = new localhost.Service();
        int Oper = selectOper.SelectedIndex;
        switch (Oper)
        {
        case 0:
          Result.Text = WebserviceInstance.addition(para1, para2).ToString();
          break;
        case 1:
          Result.Text = WebserviceInstance.substract(para1, para2).ToString();
          break;
        case 2:
          Result.Text = WebserviceInstance.multiplication(para1, para2).ToString();
          break;
        case 3:
          Result.Text = WebserviceInstance.division(para1, para2).ToString();
          break;
        }
      }
    }
    }

    运行网站即可。

    7.调用webservice常用问题。

    右键点击引用、添加服务引用,再点击弹出框里的高级,

    如果IIS里webservice没有设置匿名访问则会出现401。

    A. 如果可以匿名访问:

    DocServ.DocService fe = new web2008T2.DocServ.DocService ();
    
    string fi = fe.HelloWork();

      B.如果设置IIS时没有设置匿名,则:

    docServ.DocService se = new web2008T2.docServ.DocService();
    se.Url = "http://127.0.0.1:8050/DocAppWebService/DocService.asmx";
    se.PreAuthenticate = true; 
    se.Credentials = System.Net.CredentialCache.DefaultCredentials;
    se.UseDefaultCredentials = true;
    
    Label1.Text = se.GetListNumber("xiaoming", "borrow");
  • 相关阅读:
    LeetCode 977 有序数组的平方
    LeetCode 24 两两交换链表中的节点
    LeetCode 416 分割等和子集
    LeetCode 142 环形链表II
    LeetCode 106 从中序与后序遍历序列构造二叉树
    LeetCode 637 二叉树的层平均值
    LeetCode 117 填充每个节点的下一个右侧节点
    LeetCode 75 颜色分类
    redhat 7.4 挂载ntfs格式的u盘并且使用
    redhat 查看CPU frequency scaling(CPU频率缩放)
  • 原文地址:https://www.cnblogs.com/hpbkin/p/5287996.html
Copyright © 2011-2022 走看看