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中的加法运算。