gaoyanhui-999

统计

最新评论

Web服务及实例

一.Web服务的必要性
1.分布式系统之间的通讯
2.电子商务的数据交换
二.服务概念
1.注册
  服务必须在注册表上注册,用户才能访问它
2.接口
  使用接口,可以从其他任何程序调用服务
三.Web服务的概念
1.Web Service就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的应用程序


2.能够用编程的方法通过Web来调用这个应用程序
3.把调用这个Web Service的应用程序叫做客户
四.Web服务目录
1.Web Service目录提供一个用以定位其他单位提供的Web Service的中心位置
2.Web Service目录(如UDDI注册表)充当此角色
3.Web Service客户端可能或可能不需要引用Web Service目录
五.Web服务联网形式
1.为实现通用的通讯,Web Service使用开放连网形式进行通讯,该格式是任何能够支持最

通用的Web标准的系统都可以理解的协议
2.SOAP是XML Web Service通讯的主要协议
六.与Web服务相关的活动
1.创建Web服务
2.定义Web服务的服务接口和调用方法
3.在Internet上发布Web服务
4.查找Web服务以便使用它
5.调用Web服务以便使用它
6.不再需要时,取消对Web服务的发布
七.Web服务特征
1.通过Web进行访问
2.使用其接口进行调用
3.在服务注册表中注册
4.使用标准Web协议通信
八.Web服务的优点
1.交叉业务集成
  随着网络的发展,管理系统进入工业/农业等,为达到电子商务平台的快速共享
2.提高效率
3.拉近客户关系
4.便于实时集成
  在用的时候去调用它,在本机上使用
5.降低复杂性
  只要知道WEB的功能,不需要知道其内部编码
6.旧式应用程序

Web服务的重心:企业将内部资料对外公共的一个接口.
九.Web服务的缺点
1.公开单位的应用资产存在潜在的安全风险
2.必须支持XML
3.部署Web服务技术的成本有点高
十.在ASP.NET中创建Web服务

以.asmx扩展名保存文件:
  //WebService 指定此ASP页是Web服务
  //Language="c#"  编写Web服务所用的语言
  //class="TestWS" 包含Web方法的类
 <%@ WebService Language="c#" class="TestWS" %>

类方法中:
  //导入命名空间
 using System.Web.Services;
  class TestWS
  {
     [WebMethod]  //表明是Web方法
     public string SayHello(string name)
     {       return "Hello"+name;     }

  }
十一.通过创建网站-->ASP.NET  Web服务创建  WebServiceTest站点

使用Web服务 ---- get调用:
修改Service1.asmx.cs文件
public string HelloWorld(string name)
{
  return "欢迎"+name;
}
十二.使用Web服务 ----post调用
a.htm

<form name="f1" method="post"

action="http://localhost:1034/WebServiceTest/Service.asmx/HelloWorld">
  <input type="text" name="name"><input type="submit">
</form>
十三.使用Web服务 ----SOAP 简单对象访问协议

作用:从WEB返回数据集
基于XML格式 
1.轻型协议,用于分散的、分布式计算环境中交换信息
2.有助于以独立于平台的方式访问对象、服务和服务器
3.借助于XML,提供了HTTP所需的扩展性
4.基于HTTP/XML的协议,能够使用特定值调用方法
5.提供平台独立性
十四.使用WEB服务-调用代理

<script language="c#" runat=server>
  public void Page_Load(Object Sender,EventArgs e)
  {
    FirstWS.TestWS WSObj=new FirstWS.TestWS();
    Text1.Text=WSObj.SayHello("Scooby");
  }
</script>
  <ASP:TextBox id=Text1 runat=server/>
实例一     在本地创建代理

在"解决方案资源管理器"的"引用"上单击右键选取"添加WEB引用"
此解决方案中的Web服务自建WEB服务站点Web引用名:webService


新建WebForm.aspx文件
private void Page_Load(object sender,System.EventArgs e)
{
   webService.Service ss = new webService.Service();
   Response.Write(ss.HelloWorld("1234"));
}
 实例二    查询库存商品的数据

步骤:
1.SQL SERVER 建立数据库

create database store
use store
create table store
(
  ID varchar(10) primary key,
  num int default 0
)
insert into store values('1001',100)
insert into store values('1002',500)
insert into store values('1003',200)
insert into store values('1004',50)

实例二    查询库存商品的数据
2.在Service1.cs中插入

using System.Data;
using System.Data.SqlClient;
[WebMethod(Description="获取库存")]
public DataSet getStore()
{
  SqlConnection con=new SqlConnection("server=.;database=store;uid=sa;pwd=;");

  SqlDataAdapter sda=new SqlDataAdapter();
  sda.SelectCommand=new SqlCommand("select * from store",con);
  DataSet ds=new DataSet();
  sda.Fill(ds,"store");
  return ds; 
}
实例二    查询库存商品的数据
3.添加WEB引用
Web引用名:webService

修改WebForm1.aspx
添加GridView控件

private void Page_Load(object sender,System.EventArgs e)
{
   webService.Service ss = new webService.Service();
   this.GridView1.DataSource = ss.getStore();
   GridView1.DataBind();  
}

实例三       到某网上商场购买
付款方式: 三方监管

CA认证中心进行注策

客户(银行卡号,由CA验证)-->商家(CA验证)

银行从一个帐户向一个帐户划帐

1.建立SQL数据库 store 中的表
create table aaa
(
   account varchar(10) primary key,
   money int
)

insert into aaa values('A',10000)
insert into aaa values('B',10000)

2.Service.cs中添加
[WebMethod]
public string AtoB(int sum)
{  try
   { this.decrease(sum);         //从A中减掉sum
      this.increase(sum);          //从B中加上sum
     return "成功";
   }
   catch
   {     return "失败";     }
}
private void decrease(int sum)
{
  SqlConnection con=new SqlConnection("server=.;database=store;uid=sa;pwd=;");
  con.Open();
  SqlCommand cmd=new SqlCommand
                             ("update aaa set money=money-"+sum.ToString()

+"where  account='A'",con);
  cmd.ExecuteNonQuery();
  con.Close();
}
private void increase(int sum)
{
  SqlConnection con=new SqlConnection("server=.;database=store;uid=sa;pwd=;"); 
  con.Open();
  SqlCommand cmd=new SqlCommand
                              ("update aaa set money=money+"+sum.ToString()

+"where account='B'",con);
  cmd.ExecuteNonQuery();
  con.Close();
}

3.在WebForm1.aspx中
  添加文本框  Button按钮

  双击Button按钮进入CS文件
  private void Button1_Click(object sender,System.EventArgs e)
  {
        service1.Service ss = new service1.Service();
        int temp = Convert.ToInt32(TextBox1.Text);
        Response.Write(ss.AtoB(temp));
  }
 

posted on 2007-09-17 07:56 高彦辉 阅读(380) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。