一、第一部分

  1、         带着几个问题学习:

l    什么是WebService?

l    它能做什么?

l    为什么要学习WebService?

l    学习WebService要达到什么目的?

  1. 答:WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用.
  1. 我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单调用了一下服务器上的一段代码而已
  1. 学习WebService可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.。

l  从WebService的工作模式上理解的话,它跟普通的Web程序(比如ASP、JSP等)并没有本质的区别,都是基于HTTP传输协议的程序。

l  WebService所使用的数据均是基于XML格式的。目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编码规范的文本协议。

第二部:在开始之前必须要让先了解几个名词:

 名词1:  XML. Extensible Markup Language -扩展性标记语言
 
      •XML,用于传输格式化的数据,是Web服务的基础。
 
      •namespace-命名空间。
 
      •xmlns=“http://itcast.cn” 使用默认命名空间。
      
      •xmlns:itcast=“http://itcast.cn”使用指定名称的命名空间。
      
      名词2:WSDL – WebService Description Language – Web服务描述语言。
 
      •通过XML形式说明服务在什么地方-地址。
      
      •通过XML形式说明服务提供什么样的方法 – 如何调用。
      
      l名词3:SOAP-Simple Object Access Protocol(简单对象访问协议)
      
      •SOAP作为一个基于XML语言的协议用于有网上传输数据。
        
      •SOAP = 在HTTP的基础上+XML数据。
      
      •SOAP是基于HTTP的。
      
      •SOAP的组成如下:
      
      •Envelope – 必须的部分。以XML的根元素出现。
      
      •Headers – 可选的。
    
      •Body – 必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。

一、      WSDL说明:

<?xml version="1.0" encoding="UTF8" ?>

<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:tns="http://ws.itcast.cn/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws.itcast.cn/"

name="HelloServiceService">

<types>

<xsd:schema>

<xsd:import namespace="http://ws.itcast.cn/"

schemaLocation="http://localhost:9999/hello?xsd=1" />

</xsd:schema>

</types>

<message name="sayHi">

<part name="parameters" element="tns:sayHi" />

</message>

<message name="sayHiResponse">

<part name="parameters" element="tns:sayHiResponse" />

</message>

<portType name="HelloService">

<operation name="sayHi">

<input message="tns:sayHi" />

<output message="tns:sayHiResponse" />

</operation>

</portType>

<binding name="HelloServicePortBinding" type="tns:HelloService">

<soap:binding transport="http://schemas.xmlsoap.org/soap/http"

style="document" />

<operation name="sayHi">-------- //ws的所提供的方法及服务

<soap:operation soapAction="" />

<input>

<soap:body use="literal" />

</input>

<output>

<soap:body use="literal" />

</output>

</operation>

</binding>

<service name="HelloServiceService">-------- //ws的名称

<port name="HelloServicePort" binding="tns:HelloServicePortBinding">

<soap:address location="http://localhost:9999/hello" />-------- //ws的地址

</port>

</service>

</definitions>

二、      SOAP说明:

请求:

POST /WebServices/MobileCodeWS.asmx HTTP/1.1

Host: webservice.webxml.com.cn

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://WebXml.com.cn/getMobileCodeInfo"  ------因为是在HTTP上发数据,所以必须先遵循HTTP协议

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<getMobileCodeInfo xmlns="http://WebXml.com.cn/">

<mobileCode>string</mobileCode>

<userID>string</userID>

</getMobileCodeInfo>

</soap:Body>

</soap:Envelope>

------- 1 、XML部分即SOAP协议,必须包含

--------2 、Envelope元素和Body元素。

响应:

HTTP/1.1 200 OK

Content-Type: text/xml; charset=utf-8

Content-Length: length

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<getMobileCodeInfoResponse xmlns="http://WebXml.com.cn/">

<getMobileCodeInfoResult>string</getMobileCodeInfoResult>

</getMobileCodeInfoResponse>

</soap:Body>

</soap:Envelope>

webServices学习一(了解基础和作用。)的更多相关文章

  1. AJAX学习前奏----JS基础加强

     AJAX学习前奏----JS基础加强 知识概要: 1.js类&属性&方法的定义 2.静态属性与方法 3.构造方法 4.原型的使用 5.Object对象直接加属性和方法 6.JSO ...

  2. [学习线路] 零基础学习hadoop到上手工作线路指导(初级篇)

    about云课程最新课程Cloudera课程   零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了. ...

  3. mybatis学习笔记之基础框架(2)

    mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足s ...

  4. Quartz学习笔记:基础知识

    Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...

  5. Python学习day16-模块基础

    <!doctype html>day16 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...

  6. Python学习day12-函数基础(2)

    <!doctype html>day12博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { pos ...

  7. Python学习day05 - Python基础(3) 格式化输出和基本运算符

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  8. 学习java之基础语法(三)

    学习java之基础语法(三) java运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运 ...

  9. Java后端高频知识点学习笔记1---Java基础

    Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ...

  10. 这几天开始,先学习一些 java 基础吧,学的有点累

    这几天开始,先学习一些 java 基础吧,学的有点累

随机推荐

  1. JAVA_ArrayList和HashSet

    ArrayList ArrayList在Java中主要是以线性表的形式进行存储,其本质是数组,不过相对于数组的长度不可变这一缺点,其实行了长度可变策略,使你在使用时,感觉到其就是一个无限长度的数组,而 ...

  2. 用Navicat for mysql连接mysql报错1251-解决办法

    今天下了个 MySQL8.0,发现Navicat连接不上,总是报错1251: 原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,连接会报错. 试了很多种方法,终于找到一种可以实现的: 更 ...

  3. 基于Java Properties类设置本地配置文件

    一.Java Properties类介绍 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件, ...

  4. nodejs入门最简单例子

    一.mac话,先安装nodejs环境: brew install nodejs 二.先写一个main.js var http = require("http"); http.cre ...

  5. odoo js

    1.相关库/框架 主要:jQuery(使用1.8.3,如果使用新版本,其他jQuery插件也要升级或修改).Underscore.QWeb 其他:都在addons\web\static\lib路径下. ...

  6. 如何玩转跨库Join?跨数据库实例查询应用实践

    背景 随着业务复杂程度的提高.数据规模的增长,越来越多的公司选择对其在线业务数据库进行垂直或水平拆分,甚至选择不同的数据库类型以满足其业务需求.原本在同一数据库实例里就能实现的SQL查询,现在需要跨多 ...

  7. data方法也是模型类的连贯操作方法之一,

    data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值. 写操作 通常情况下我们都是通过create方法或者赋值的方式生成数据对象,然后写入数据库,例如: $Model = D(' ...

  8. 数论,质因数,gcd——cf1033D 好题!

    直接筛质数肯定是不行的 用map<ll,ll>来保存质因子的指数 考虑只有3-5个因子的数的组成情况 必定是a=pq or a=p*p or a=p*p*p or a=p*p*p*p 先用 ...

  9. opencv-VS2010配置opencv2.4.8

    详细教程可参考:http://blog.csdn.net/huang9012/article/details/21811129/ 原文在这里:[OpenCV入门教程之一] 安装OpenCV:OpenC ...

  10. 设定计算属性setter

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...