• 在.net平台上如何创建和使用web 服务(C#)


    在.net平台上如何创建和使用web 服务(C#)

    一、创建web服务类
    1、新建一个asp.net网站,删除原有的default.aspx文件,在添加新项里添加一个web服务,取名DateService.asmx,如下图所示:

    添加好后,网站中会出现两个文件,一个在你添加的文件夹下叫DateService.asmx,一个在App_Code文件夹下叫DateService.cs。如下图所示:

    DateService.asmx文件中只有一行代码,用来调用DateService.cs文件中定义的服务类。
    2、下面我们在DateService.cs文件中编写服务类,来设计两个方法。
    方法一:public string CaculateWeekDay(int y, int m, int d)用来计算指定日期是星期几,具体代码如下

    [WebMethod]


    public string CaculateWeekDay(int y, int m, int d)


    {


    if (y < 0 || m < 0 || m > 12 || d < 0 || d > 31)


    {


    return "
    您输入的日期有误,请重新输入!";


    }


    DateTime dt = new DateTime(y, m, d);


    DayOfWeek dw = dt.DayOfWeek;


    string sWeek = "";


    switch (dw.ToString())


    {


    case "Monday": sWeek = "
    星期一"; break;


    case "Tuesday": sWeek = "
    星期二"; break;


    case "Wednesday": sWeek = "
    星期三"; break;


    case "Thursday": sWeek = "
    星期四"; break;


    case "Friday": sWeek = "
    星期五"; break;


    case "Saturday": sWeek = "
    星期六"; break;


    case "Sunday": sWeek = "
    星期日"; break;


    }


    return sWeek;

    }

    [WebMethod]属性用来说明这个方法是web服务方法。

    方法二:public string GetDaysBeforeOlympicGames2008()用来计算距离北京2008年奥运会还有几天。具体代码如下:

    [WebMethod]


    public string GetDaysBeforeOlympicGames2008()


    {


    DateTime dtOlympic = new DateTime(2008, 8, 8);


    DateTime dtNow = DateTime.Now;


    int days=1;


    for (days = 1; ; days++)


    {


    dtNow = dtNow.AddDays(1);


    if (dtNow.ToShortDateString()==dtOlympic.ToShortDateString())


    {


    break;


    }


    }


    return "
    距离北京2008年奥运会还有" + days + "天";


    }

    3、设计好服务类后,接下来我们测试一下web服务。在visual studio环境中,运行DateService.asmx文件。这将出现一个web页面,其中列出了DateService.asmx文件给出的所有服务(方法),以及一个显示WSDL信息的服务说明链接。如下图所示:

    本例中有两个方法,点击CaculateWeekDay将出现如下页面:

    输入如下图中的参数,点击调用按钮将输出一个XML文档得到返回值。

    将先前创建的网站目录设置成IIS的虚拟目录(ws),供下面的代理类调用。
    二、创建web服务代理类(使用web服务)
    1、另外在新建一个asp.net网站,右击网站工程选择添加WEB引用。在URL中输入本地部署的web服务的地址(http://localhost/ws/DateService.asmx),如下图所示:

    然后点击添加引用按钮,VS会自动生成web服务的代理类。此时网站中将多出一个App_WebReferences文件夹。
    2、下面我们在Default.aspx文件中利用生成的代理类调用DateService.asmx提供的web服务。在Default.aspx文件中,添加三个文本框,四个label和一个按钮。如下图所示:

    Default.aspx.cs文件中编写按钮单击事件。以下是按钮单击事件的代码:
    先得添加web代理类的命名空间
    using localhost;

    protected void btnCaculateWeekDay_Click(object sender, EventArgs e)


    {


    DateService ds=new DateService();


    int y=Convert.ToInt32(txtYear.Text.Trim());


    int m=Convert.ToInt32(txtMonth.Text.Trim());


    int d=Convert.ToInt32(txtDay.Text.Trim());


    Label4.Text = ds.CaculateWeekDay(y, m, d);

    }
    运行Default.aspx文件,在文本框中分别输入2008-8-8,单击按钮,输出结果为星期五。如下图所示:

    再在Default.aspx文件中添加一个按钮和一个Label,用来调用GetDaysBeforeOlympicGames2008 web方法。单击事件代码:

    protected void btnOlympic_Click(object sender, EventArgs e)


    {


    DateService ds = new DateService();


    Label5.Text = ds.GetDaysBeforeOlympicGames2008();

    }
    运行结果:

    http://www.51leifeng.net/thread-10007-1-1.html

  • 相关阅读:
    Mybatis多表查询
    (转)Java安全通信:HTTPS与SSL
    (转)RSA加密解密及数字签名Java实现
    (转)大型企业电话会议视频会议备份解决方案
    (转)虚拟IP原理
    虚拟IP---Linux下一个网卡配置多个IP
    C++ 点
    算法(8)Maximum Product Subarray
    算法(7)Majority Element II
    算法(6)3Sum Closest
  • 原文地址:https://www.cnblogs.com/no7dw/p/1491193.html
Copyright © 2020-2023  润新知