web service 学习
一、Web Service简介
1、Web Service基本概念
Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。
Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。
WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。
UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。
2、XML Web Service的特点
1)、跨防火墙的通讯
2)、应用程序集成
3)、B2B的集成
4)、软件和数据重用
二、Web Service开发
1、首先在项目中创建一个后缀名为.asmx的Web服务
2、打开.cs文件,则可看见自动生成的原始代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace WebSerivce { /// <summary> /// WebService_1 的摘要说明 /// </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 WebService_1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } } }
3、运行web serivce 文件(需要把url地址先记下来)
4、重新创建一个项目,我们将访问上面的web服务
web服务中添加方法
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Services; 6 7 namespace WebSerivce 8 { 9 /// <summary> 10 /// WebService_1 的摘要说明 11 /// </summary> 12 [WebService(Namespace = "http://tempuri.org/")] 13 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 14 [System.ComponentModel.ToolboxItem(false)] 15 // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 16 // [System.Web.Script.Services.ScriptService] 17 public class WebService_1 : System.Web.Services.WebService 18 { 19 20 [WebMethod] 21 public string HelloWorld() 22 { 23 return "Hello World"; 24 } 25 26 [WebMethod(Description = "求和的方法")] 27 public int Add(int num1,int num2) 28 { 29 return num1 + num2; 30 } 31 } 32 }
5、另外一个项目中添加服务引用。
6、接下来就可以在aspx页面中调用web服务
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 8 namespace FirstTest 9 { 10 public partial class First : System.Web.UI.Page 11 { 12 protected void Page_Load(object sender, EventArgs e) 13 { 14 15 } 16 /// <summary> 17 //计算 18 /// </summary> 19 /// <param name="sender"></param> 20 /// <param name="e"></param> 21 protected void Button1_Click(object sender, EventArgs e) 22 { 23 int num1 = Convert.ToInt32(this.txtnum1.Text); 24 int num2 = Convert.ToInt32(this.txtnum2.Text); 25 26 FirstWebService.WebService_1SoapClient a = new FirstWebService.WebService_1SoapClient(); 27 int result = a.Add(num1, num2); 28 this.txtresult.Text = result.ToString(); 29 } 30 } 31 }
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="First.aspx.cs" Inherits="FirstTest.First" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.w3.org/1999/xhtml"> 6 <head runat="server"> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 8 <title></title> 9 </head> 10 <body> 11 <form id="form1" runat="server"> 12 <div> 13 14 <asp:TextBox ID="txtnum1" runat="server" Width="97px"></asp:TextBox> 15 + 16 <asp:TextBox ID="txtnum2" runat="server" Width="88px"></asp:TextBox> 17 <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="计算" /> 18 19 <asp:TextBox ID="txtresult" runat="server" Width="96px"></asp:TextBox> 20 21 </div> 22 </form> 23 </body> 24 </html>
运行项目则可实现web service中的加法运算。