通过前台jquery调用本地WebService(一) SOAP体
2015-09-07 15:29
459 查看
连续查找动态WebService的资料 方法 依然困难重重 不知道这个算不算希望
WebService 是基于HTTP协议的一种传输方式 本质是传递XML
但是这个XML又不是普通的XML 他是一个要符合SOAP体的XML
这个SOAP体又要符合SOAP协议才行
举个例子 你写信邮出去 邮局需要你的信封上有收信人 收信人地址 寄信人地址 以及邮票 这样就符合了邮局的协议 邮局就会给你邮寄信件
而信件的内容中有某种你与收信人自己定义的格式 这样收信人才能看懂你的信
综上所述 这个信封部分就好比是HTTP协议 而这个信的格式就相当于SOAP协议
所以 SOAP协议是基于HTTP协议的
首先分析一下WebService
我们需要知道调用WebService需要知道这个WebService的地址(url)、需要调用什么方法、方法中需要什么参数、方法返回值以及这个WebService的命名空间(Namespace)
这些都可以从WebService的WSDL文件中分析出来 但是通常都是直接用WebServiceClient自动解析
刚才说过WebService的本质是传递XML 但是作为调用的我们 只需要传递参数值 知道调用什么方法等等 就可以调用 并不需要写什么XML 而这个XML又是符合SOAP协议的SOAP体 这个SOAP体的基本格式是这样的
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<methodName xmlns="Namespace">
<data>value</data>
</methodName>
</soap:Body>
</soap:Envelope>
第一行就不解释了
第二行是声明这是一个SOAP体 具体做什么用的 老实说我也不太清楚 不过所有的WebService都必须要这么写
主要说一下第三行以下的部分 也就是<soap:Body>标签里面的部分
<methodName xmlns="Namespace">
methodName 是方法名
Namespace是命名空间
data需要传递的参数名
value需要传递的参数值
这四个除了命名空间 剩下的三个也是咱们即使用WebServiceClient调用 也需要知道的东西 很必要 当然了 如果方法不需要传参data与value也可以省略
这个就是传递的SOAP体的基本型
WebService 是基于HTTP协议的一种传输方式 本质是传递XML
但是这个XML又不是普通的XML 他是一个要符合SOAP体的XML
这个SOAP体又要符合SOAP协议才行
举个例子 你写信邮出去 邮局需要你的信封上有收信人 收信人地址 寄信人地址 以及邮票 这样就符合了邮局的协议 邮局就会给你邮寄信件
而信件的内容中有某种你与收信人自己定义的格式 这样收信人才能看懂你的信
综上所述 这个信封部分就好比是HTTP协议 而这个信的格式就相当于SOAP协议
所以 SOAP协议是基于HTTP协议的
首先分析一下WebService
我们需要知道调用WebService需要知道这个WebService的地址(url)、需要调用什么方法、方法中需要什么参数、方法返回值以及这个WebService的命名空间(Namespace)
这些都可以从WebService的WSDL文件中分析出来 但是通常都是直接用WebServiceClient自动解析
刚才说过WebService的本质是传递XML 但是作为调用的我们 只需要传递参数值 知道调用什么方法等等 就可以调用 并不需要写什么XML 而这个XML又是符合SOAP协议的SOAP体 这个SOAP体的基本格式是这样的
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<methodName xmlns="Namespace">
<data>value</data>
</methodName>
</soap:Body>
</soap:Envelope>
第一行就不解释了
第二行是声明这是一个SOAP体 具体做什么用的 老实说我也不太清楚 不过所有的WebService都必须要这么写
主要说一下第三行以下的部分 也就是<soap:Body>标签里面的部分
<methodName xmlns="Namespace">
methodName 是方法名
Namespace是命名空间
data需要传递的参数名
value需要传递的参数值
这四个除了命名空间 剩下的三个也是咱们即使用WebServiceClient调用 也需要知道的东西 很必要 当然了 如果方法不需要传参data与value也可以省略
这个就是传递的SOAP体的基本型
相关文章推荐
- RPC、RMI、SOAP的区别详解
- PHP中soap的用法实例
- PHP实现Soap通讯的方法
- 使用jaxws建立webservice客户端并实现soap消息的handler验证示例
- 基于JAVA中Jersey处理Http协议中的Multipart的详解
- android中soap协议使用(ksoap调用webservice)
- Web Service 那点事儿(1)
- Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务
- Web Service 那点事儿(3)—— SOAP 及其安全控制
- 使用AXIS生成SOAP Web Service客户端的方法
- TCP/IP网络协议的通俗理解,socket,http,soap。
- HTTP协议理解与应用总结
- ubuntu下安装 gSOAP 用于C/C++开发web service服务端与客户端
- Linux下用gSOAP开发Web Service服务端和客户端程序(一)
- Linux下用gSOAP开发Web Service服务端和客户端程序(二)
- 利用php soap实现web service
- 利用php soap实现web service (二)
- HTTP协议详解
- web service, wcf, web api
- 详解Http协议