码迷,mamicode.com
首页 > Web开发 > 详细

(转)一个webservice的小demo

时间:2014-09-18 20:35:34      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   io   os   使用   ar   for   文件   

 .net平台内建了对Web Service的支持,包括Web Service的构建和使用。与其它开发平台不同,使用.net平台,你不需要其他的工具或者SDK就可以完成Web Service的开发了。.net Framework本身就全面支持Web Service,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。下来我们就一步一步的用Microsoft Visual Studio .net 2005(后面简称VS.Net 2005)创建和使用一个简单的Web Service。 

    webservice,其实它就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据.在代码文件里,如果我们写了一个函数后,希望此函数成为外部可调用的接口函数,我们必须在函数上面添上一行代码[WebMethod(Description="函数的描述信息")],如果你的函数没有这个申明,它将不能被用户引用.下来我们开始编写一个简单的Web Service 的例子.

2.1、用创建一个最简单的Web Service 
首先,打开VS2005,打开“文件-新建-网站”,选择“ASP.NET Web服务”。 


在appcode/Service.cs中添加以下代码 

bubuko.com,布布扣
 1bubuko.com,布布扣using System; 
 2bubuko.com,布布扣using System.Web; 
 3bubuko.com,布布扣using System.Web.Services; 
 4bubuko.com,布布扣using System.Web.Services.Protocols; 
 5bubuko.com,布布扣[WebService(Namespace = "http://tempuri.org/")] 
 6bubuko.com,布布扣[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
 7bubuko.com,布布扣public class Service : System.Web.Services.WebService 
 8bubuko.com,布布扣
 9bubuko.com,布布扣    public Service () 
10bubuko.com,布布扣        //如果使用设计的组件,请取消注释以下行 
11bubuko.com,布布扣        //InitializeComponent(); 
12bubuko.com,布布扣    } 
13bubuko.com,布布扣    //[WebMethod] 
14bubuko.com,布布扣    //public string HelloWorld() { 
15bubuko.com,布布扣    //    return "Hello World"; 
16bubuko.com,布布扣    //} 
17bubuko.com,布布扣    [WebMethod(Description = "求和的方法")] 
18bubuko.com,布布扣    public double addition(double i, double j) 
19bubuko.com,布布扣    
20bubuko.com,布布扣        return i + j; 
21bubuko.com,布布扣    } 
22bubuko.com,布布扣    [WebMethod(Description = "求差的方法")] 
23bubuko.com,布布扣    public double qiucha(double i, double j) 
24bubuko.com,布布扣    
25bubuko.com,布布扣        if (i > j) 
26bubuko.com,布布扣            return i - j; 
27bubuko.com,布布扣        else 
28bubuko.com,布布扣            return j - i;                   
29bubuko.com,布布扣    }     
30bubuko.com,布布扣
31bubuko.com,布布扣


2.调用webService里的接口: 
1). 打开VS2005,打开“文件-新建-网站”,选择“ASP.NET网站”。 
2). 然后先添加Web引用,把WebService引到当前的工程里面。方法是:在资源管理器中点击右键,选择添加Web 引用,调出对话框; 
3). 在URL中填入,前面写好的WebService运行后浏览器上面显示的地址,点击“前往”按钮,如上图,就会显示出所引用的WebService中可以调用的方法,然后点击“添加引用”,就将webservice引用到了当前的工程里面 ,如下图,解决方案中会出现引进来的WebService文件 
下面看代码: 
default.aspx: 

bubuko.com,布布扣
 1bubuko.com,布布扣<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %> 
 2bubuko.com,布布扣<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 3bubuko.com,布布扣<html xmlns="http://www.w3.org/1999/xhtml" > 
 4bubuko.com,布布扣<head runat="server"> 
 5bubuko.com,布布扣    <title>无标题页</title> 
 6bubuko.com,布布扣</head> 
 7bubuko.com,布布扣<body> 
 8bubuko.com,布布扣    <form id="form1" runat="server"> 
 9bubuko.com,布布扣    <div> 
10bubuko.com,布布扣        <asp:TextBox ID="Num1" runat="server"></asp:TextBox> 
11bubuko.com,布布扣        <select id="selectOper" runat="server"> 
12bubuko.com,布布扣            <option>+</option> 
13bubuko.com,布布扣            <option>-</option> 
14bubuko.com,布布扣         </select>          
15bubuko.com,布布扣          <asp:TextBox ID="Num2" runat="server"></asp:TextBox> 
16bubuko.com,布布扣           <span id = "E" runat = "server"></span> 
17bubuko.com,布布扣           <asp:Button ID="btn" runat="server" Text="=" OnClick="btn_Click" />                 
18bubuko.com,布布扣           <asp:TextBox ID="Result" runat="server"></asp:TextBox>         
19bubuko.com,布布扣     
20bubuko.com,布布扣    </div> 
21bubuko.com,布布扣    </form> 
22bubuko.com,布布扣</body> 
23bubuko.com,布布扣</html> 
24bubuko.com,布布扣


后台default.apsx.cs文件: 

bubuko.com,布布扣
 1bubuko.com,布布扣using System; 
 2bubuko.com,布布扣using System.Data; 
 3bubuko.com,布布扣using System.Configuration; 
 4bubuko.com,布布扣using System.Web; 
 5bubuko.com,布布扣using System.Web.Security; 
 6bubuko.com,布布扣using System.Web.UI; 
 7bubuko.com,布布扣using System.Web.UI.WebControls; 
 8bubuko.com,布布扣using System.Web.UI.WebControls.WebParts; 
 9bubuko.com,布布扣using System.Web.UI.HtmlControls; 
10bubuko.com,布布扣
11bubuko.com,布布扣public partial class _Default : System.Web.UI.Page 
12bubuko.com,布布扣
13bubuko.com,布布扣    protected void Page_Load(object sender, EventArgs e) 
14bubuko.com,布布扣    
15bubuko.com,布布扣
16bubuko.com,布布扣    } 
17bubuko.com,布布扣    protected void btn_Click(object sender, EventArgs e) 
18bubuko.com,布布扣    
19bubuko.com,布布扣        if(Num1.Text!=null&&Num2.Text!=null) 
20bubuko.com,布布扣        
21bubuko.com,布布扣        localhost.Service objService=new localhost.Service(); 
22bubuko.com,布布扣        int i = selectOper.SelectedIndex; 
23bubuko.com,布布扣        switch (i) 
24bubuko.com,布布扣        
25bubuko.com,布布扣            case 0: 
26bubuko.com,布布扣                Result.Text = objService.addition(double.Parse(Num1.Text),double.Parse(Num2.Text)).ToString(); 
27bubuko.com,布布扣                break; 
28bubuko.com,布布扣            case 1: 
29bubuko.com,布布扣                Result.Text = objService.qiucha(double.Parse(Num1.Text), double.Parse(Num2.Text)).ToString(); 
30bubuko.com,布布扣                break; 
31bubuko.com,布布扣        } 
32bubuko.com,布布扣        } 
33bubuko.com,布布扣    } 
34bubuko.com,布布扣
35bubuko.com,布布扣


运行后可以看到效果,如下图所示,在前面两个Textbox里面输入两个操作数,在中间的下拉列表中选择操作符,然后点击“=”号,将计算的结果输出到第三个Textbox里面。 

注意:而整个计算并不是在本地进行的,是在Web服务端进行计算的然后将结果通过XML返还给了调用方的,所以,在运行该程序的时候,WebService程序还必须启动,否则会报无法连接远程服务器的异常. 
(参考自:http://www.cnblogs.com/zhangzheny/archive/2007/06/16/785734.html)

(转)一个webservice的小demo

标签:des   blog   http   io   os   使用   ar   for   文件   

原文地址:http://www.cnblogs.com/lschenblog/p/3979949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!