初识Web Service与第一个Demo实战

Web Service并不是什么神秘的东西,好多时候我们一听服务就感觉好遥远,当时我也是这样的,一听说机房的服务器就感觉很高大上。后来就发现不就是一台电脑吗。我们可以简单理解为它是一个可以远程调用的类,或者说是组件。 把你本地的功能开放出去共别人调用。不能光听我的大白话,下面来看看具体的内部是如何实现的呢?

WebService的主要目标是跨平台的可互操作性。完全基于XML(可扩展标记语言),XSD(XMLSchema)等独立于平台、独立于于软件供应商的标准,是创建可互操作的、分布式应用软件的新平台。

WebService是一个协议,相当于http协议。

工作原理:

最普遍的一种说法就是,Web Service = SOAP + HTTP + WSDL。其中,SOAP Simple Object Access Protocol)协议是web service的主体,它通过HTTP或者SMTP等应用层协议进行通讯,自身使用XML文件来描述程序的函数方法和参数信息,从而完成不同主机的异构系统间的计算服务处理。这里的WSDL(Web
Services Description Language)web 服务描述语言也是一个XML文档,它通过HTTP向公众发布,公告客户端程序关于某个具体的 Web service服务的URL信息、方法的命名,参数,返回值等。

XML技术支持:XML是WebService表示数据的格式。正式因为XML与语言无关,与平台无关。才造就了WebService特点。

SOAP:简单对象访问协议。表示通信传递数据的格式。soap是基于xml或xsd形式的。通信的消息格式应该是怎么样的,继续往下阅读,我们会继续介绍。

WSDL支持:WebService描述语言。也就是类似于我们设计或开发的文档。我们是根据文档进行开发项目的。wsdl就是描述了,你调用方法的名称以及其中参数以及参数名称。

提供者将服务发布出去,请求者进行服务请求,绑定者将两者相结合。

第一个Demo

1、服务器端:

(1)首先打开VS,创建一个空的web窗体

(2)添加Web服务

(3)WebHello.asmx中的代码:

<span style="font-family:KaiTi_GB2312;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebServiceDemo
{
    /// <summary>
    /// WebHello 的摘要说明
    /// </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 WebHello : System.Web.Services.WebService
    {
        //Web服务自带的方法
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        [WebMethod]
        //创建新的方法Hello
        public string Hello(string Name)
        {
            return Name + ":你好";
        }
    }
}
</span>

(4)点击运行,即可看到如下图所示

2、客户端

(1)同上一样建立一个空的Web项目,起名字为WebClientDemo

(2)在解决方案里面添加服务引用

(3) 在添加服务引用左下角点击高级,出现服务引用设置,在左下角找到web引用,点开,出现如下界面。

(4)新建一个web窗体命名为WebHello

(5)写WebHello.aspx代码:

<span style="font-family:KaiTi_GB2312;"><!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>小测试</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1"  runat="server" Width="287px"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="发送" OnClick="Button1_Click" />
        <br />
        <br />
        <asp:TextBox ID="TextBox2"  runat="server" Width="287px"></asp:TextBox>
    </div>
    </form>
</body>
</html></span>

(6)写WebHello.aspx.cs代码:

<span style="font-family:KaiTi_GB2312;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebClientDemo;

namespace WebClientDemo
{
    public partial class  WebHello : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //实例化服务引用
            WebServiceDemo.WebHello web = new WebServiceDemo.WebHello();
            //获取输入框的字符串
            string text = this.TextBox1.Text;
            //赋值给textbox2
            this.TextBox2.Text = web.Hello(text);

        }
    }
}</span>

(7)在第一个文本框写上:李晓东,点击发送按钮 ,就会在第二个文本框显示结果。运行效果(这里需要注意的是服务端必须在运行状态)

总结:很多时候我们只有通过实践才更能明白其中的知识点。

时间: 2024-07-29 11:47:57

初识Web Service与第一个Demo实战的相关文章

Service与第一个Demo实战

Web Service并不是什么神秘的东西,好多时候我们一听服务就感觉好遥远,当时我也是这样的,一听说机房的服务器就感觉很高大上.后来就发现不就是一台电脑吗.我们可以简单理解为它是一个可以远程调用的类,或者说是组件. 把你本地的功能开放出去共别人调用.不能光听我的大白话,下面来看看具体的内部是如何实现的呢?      WebService的主要目标是跨平台的可互操作性.完全基于XML(可扩展标记... http://bbs.chinaacc.com/forum-3-26/topic-579776

搭建一个RESTFUL风格的Web Service (Maven版本)

[该教程翻译自Spring官方,并进行适当删减.] 你将搭建的 你将搭建一个可以接受Http Get 请求的web service, http://localhost:8080/greeting 并将以JSON字符串的形式返回问候, {"id":1,"content":"Hello, World!"} 工具 一个文本编辑器,JDK1.6及以上,Maven 3.0+或者Gradle 1.11+.(本文将使用Maven) 下面是pom.xml文件的清

构建一个基于 Spring 的 RESTful Web Service

本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://localhost:8080/greeting 并返回如下JSON格式的问候语: {"id":1,"content":"Hello, World!"} 你也可以通过指定查询字符串中的可选参数name来定制问候语: http://localhost:8080

【Java学习笔记】如何写一个简单的Web Service

本Guide利用Eclipse以及Ant建立一个简单的Web Service,以演示Web Service的基本开发过程: 1.系统条件: Eclipse Java EE IDE for Web Developers Java SE 6 Windows XP 2.基本环境搭建: 1)Java SE6 JDK的安装:下载Java SE6 JDK,双击,安装默认选项进行安装即可. 2)Eclipse的安装与配置: 安装时直接解压.     配置处有两点,Window>Preferences>Jav

Web Service概念梳理

计算机技术难理解的很多,Web Service 对我来说就是一个很难理解的概念:为了弄清它到底是什么,我花费了两周的时间,总算有了一些收获,参考了不少网上的资料,但有些概念说法不一.我以w3c和 一些早期介绍Web Service的书为准.如有错误,欢迎指正! -------------------------------------------------------------- 提前预警!概念太多,你需要仔细阅读,或要阅读两遍.   SOA                        

Web service的学习资源

看了半天的Web service,总算是对它有了一点眉目,不枉此行:)那就整理一下吧,来日还需要用到呢! 1.什么是Web service(请看这儿). 2.Web service的开发        当然有很多语言可以实现,我独需C++的实现(而且还是VC++6.0平台上的实现!如果是.net,那就舒服了!:)),在网上搜罗了一翻,倒是找到不少的例子,可惜调试了几个,就是没有成功过⊙﹏⊙b汗.最终,确定还是从gSOAP开始(也有其他的工具,暂时没时间搜索整理了,偷个懒吧:)).下面是关于gSo

web service开发 java

很多时候我们需要开发web service 下面我就介绍一下 使用到的工具:Tomcat + axis2 + eclipse 我们需要下载两个zip包,可从http://ws.apache.org/axis2/ 下载Axis2的最新版本: axis2-1.7.3-bin.zip axis2-1.7.3-war.zip 其中axis2-1.7.3-bin.zip文件中包含了Axis2中所有的jar文件, axis2-1.7.3-war.zip文件用于将WebService发布到Web容器中. 解压

怎样创建.NET Web Service http://blog.csdn.net/xiaoxiaohai123/article/details/1546941

为什么需要Web Service 在通过internet网购买商品后,你可能对配送方式感到迷惑不解.经常的情况是因配送问题找配送公司而消耗你的大量时间,对于配送公司而言这也不是一项增值服务. 为了解决这种问题,配送公司需要在不降低安全级别的情况下了解更多的递送信息,然而安全公司设计的安全系统却非常复杂.那么我们能不能只使用80端口(web服务器端口)并且只通过web服务器提供信息呢?所以,我们建立了一个全新的web应用程序以便从核心商业应用程序中获得数据.配送公司将为些东西付money,所有的公

php5调用web service

工作中需要用php调用web service接口,对php不熟,上网搜搜,发现关于用php调用web service的文章也不多,不少还是php4里用nusoap这个模块调用的方法,其实php5里已经包含了处理soap的模块,但是资料太少了,上php官网上查帮助,写的不是很容易理解,经过多次实践,终于搞清楚了,php调用web service还是非常简单的.下面用一个例子说明: extension=php_openssl.dll extension=php_soap.dll php.ini 这2