• .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");
  • 相关阅读:
    那些值得收藏的神奇的网站,使用RSS阅读器订阅喜欢的网站 --授人以鱼不如授人以渔
    截图与屏幕录像利器:FastStone Capture
    Java基础数据类型
    刚刚开通了博客园,欢迎来踩
    ETL 各种小问题笔记
    SpringBoot 项目打包部署Resin遇到的问题
    跟据html页面生成图片方便打印分享
    微信将用户信息转为一张图片(将html转为图片)
    Js处理本地视频和第三方视频播放的问题
    反射+特性实现 类和XML文档的序列化反序列化
  • 原文地址:https://www.cnblogs.com/hpbkin/p/5287996.html
Copyright © 2020-2023  润新知