Soup协议-即普通post请求,内容域xml
1.基础问题
1.1 soup-Simple Object Access Protocal简单对象访问协议
a).承载在http协议之上,http支持传输img/html/文件等,soup请求和响应域都是xml.
c).wsdl->Web Services Description Language, 网络服务接口文档 ,用于描述Web service函数的参数及其返回值的.
http://www.webservicex.net/CurrencyConvertor.asmx?wsdl //请求后加?wsdl返回的即是对应的wsdl文件
1.2 可供测试的webservice
2. 示例1-postman发起即可
requestHeader
Content-Type:application/soap+xml; charset=utf-8
Content-Length:380
SOAPAction:http://WebXml.com.cn/getSupportCity //如果在post数据域中传递方法名,则不需要传递
requestBody
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetGeoIP xmlns="http://www.webservicex.net/">
<IPAddress>180.102.21.198</IPAddress>
</GetGeoIP>
</soap12:Body>
</soap12:Envelope>
ResponseBody
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetGeoIPResponse xmlns="http://www.webservicex.net/">
<GetGeoIPResult>
<ReturnCode>1</ReturnCode>
<IP>180.102.21.198</IP>
<ReturnCodeDetails>Success</ReturnCodeDetails>
<CountryName>China</CountryName>
<CountryCode>CHN</CountryCode>
</GetGeoIPResult>
</GetGeoIPResponse>
</soap:Body>
</soap:Envelope>
9. Java发布Webservice服务
10. WSDL文件-Web Services Description Language(XML子集)
a). <import>相当于java的import
b). xmlns相当于java的import,和地址后面的targetNameSpace是对应的
c). targetName相当于java的package
10.1 通过soupUI生成入参报文和URL
a). 安装soupUI->SOAP->Initial WSDL->标签中填入相应值即可
10.2 WSDL转成java文件
a). 首先新建一个 “Dynamic Web Project”, 比如: WebServiceClientTest.这个的用处是为了存放产生的Java代码。
b). 工程->右键->WebServiceClientTest , New-->Others --->Web Services-->Web Service Client->在Service definition 输入wsdl的地址
滑动条拉到Develop client 上。
c). 一直下一步就产生Java Code了。
d). 产生的Code中, 有一个Java 文件以Proxy结尾, 这个就是调用的Class了
10.5 WSDL文件格式-xml
10.5.1 -webservice中使用的数据类型
为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。
10.5.2 函数(操作)的入参和出参描述
a). 接口中的每一个方法对应两个message
//示例
<wsdl:message name="GetKeyAndSignalizationRequest">
<wsdl:part name="body" element="kas_v1:GetKeyAndSignalizationRequest"/>
</wsdl:message>
<wsdl:message name="GetKeyAndSignalizationResponse">
<wsdl:part name="body" element="kas_v1:GetKeyAndSignalizationResponse"/>
</wsdl:message>
10.5.3 端口-最重要-wsdl中可执行的操作及信息
a). 下面包含N个Operation,每个operation对应一个操作
b).
//示例
<wsdl:portType name="KeyAndSignalizationPortType">
<wsdl:operation name="getKeyAndSignalization">
<wsdl:input message="tns:GetKeyAndSignalizationRequest" name="KeyAndSignalizationInput"/>
<wsdl:output message="tns:GetKeyAndSignalizationResponse"/>
</wsdl:operation>
<wsdl:operation name="heartbeat">
<wsdl:input message="tns:HeartbeatRequest" name="heartbeatInput"/>
<wsdl:output message="tns:HeartbeatResponse"/>
</wsdl:operation>
</wsdl:portType>
10.5.4 -实现类-为每一端口(portType)定义消息格式和协议细节
a). <binding>元素两个属性,name-binding名称,type指向portType中一个值
b). <soap:binding> style-取值rpc或document,取document;transport定义要使用的SOAP协议,取HTTP
c). <soap:operation> soapAction在httpHeader中传给server,需要唯一,暴露给外界调用的操作
//示例
<wsdl:binding name="KeyAndSignalizationV1SoapBinding" type="defs:KeyAndSignalizationPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getKeyAndSignalization">
<soap:operation soapAction="cks-ws-keyAndSignalization"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
10.5.5 -定义ws的名称
port[address] 定义ws绑定的地址
//示例
<wsdl:service name="KeyAndSignalizationV1Service">
<wsdl:port name="KeyAndSignalizationV1SoapPort" binding="tns:KeyAndSignalizationV1SoapBinding">
<soap:address location="cks-ws-keyAndSignalization" />
</wsdl:port>
</wsdl:service>
Soup协议-即普通post请求,内容域xml的更多相关文章
- 对于java用发送http请求,请求内容为xml格式
import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.ByteArrayOutputStr ...
- java发送http请求,内容为xml格式&&传统URI类请求
import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.ByteArrayOutputStr ...
- 百万年薪python之路 -- 请求跨域和CORS协议详解
楔子 什么是同源策略 同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.当一个浏览器的两个tab ...
- http协议(二)请求和响应报文的构成
http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...
- Http协议对格式、请求头、方法
######### #概览 ######### 超文本传输协议(Http: Hyper Text Transfer Protocol) :用于发送WWW方式的数据.采用TCP/IP协议,是一个无状态协 ...
- 配置Chrome支持本地(file协议)的AJAX请求
什么问题 WEB开发过程中,很多时候我们都是写一些简单的Demo,并不是开发一个完整项目,此时我们常见的操作是: 新建文件夹 新建需要的文件 在Sublime(或其他编辑器)中完成DEMO的编码 双击 ...
- Ajax请求跨域问题 -- 转载
几乎每种浏览器都存在默认的安全机制,都有同源策略,因为浏览器恶意的把每个外部请求的都当做是黑客攻击,相当于是对自身的保护,所以浏览器在运行脚本时会判断脚本与请求的页面是否是同一来源,这个同一来源,包括 ...
- http协议(八)请求首部字段
请求首部字段 定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息.客户端信息以及对响应内容相关的优先级等内容 1.Accept 通知服务器用户代理可处理的媒体类型及媒体 ...
- HTTP协议的8种请求类型介绍
HTTP协议的8种请求类型介绍 转自:http://www.cnblogs.com/liangxiaofeng/p/5798607.html HTTP协议的8种请求类型介绍 HTTP协议中共定义了八种 ...
随机推荐
- HTTP 的若干问题
1 HTTP无状态协议和Connection:Keep-Alive容易犯的误区 HTTP无状态:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态.从另一方面讲,打开一个服务器上的 ...
- Windows部署jenkins服务器
本次使用的操作系统: windows server 2012 r2vs版本: vs 2015jenkins: 2.19.4 一.下载jenkins http://mirror.xmission.com ...
- java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和联系
java.util.Date.java.sql.Date.java.sql.Time.java.sql.Timestamp区别和联系 栏目:Java基础 作者:admin 日期:2015-04-19 ...
- 使用struts2进行文件下载以及下载权限控制的例子
本测试有两个模块,一个是文件上上传,一个是文件下载,文件下载的时候会检查是否足有权限,如果没有,就会转发到登录页面,如果有权限,就会直接启动下载程序,给浏览器一个输出流. 下面直接上我的代码: 登录表 ...
- MD5算法的c++实现
需要注意的几点: (1)md5存取的数据长度仅为64位,位于数据的最前端,大于令其自然溢出. (2)update函数和final函数处理得很繁琐,需要仔细分析. (3)16位md5码取32位md5码的 ...
- [HDU1109]模拟退火算法
模拟退火的基本思想: (1) 初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点),每个T值的迭代次数L (2) 对k=1,……,L做第(3)至第6步: (3) 产生新解$S\prime $ ...
- 1、转载 bwa的使用方法
http://bio-bwa.sourceforge.net/bwa.shtml http://www.plob.org/?p=25 bwa的使用需要两中输入文件: Reference genome ...
- (转自精通Python设计模式)Python设计模式之创建型模式——2.建造者模式
建造者模式将一个复杂对象的构造过程与其表现分离,这样,同一个构造过程可用于创建多个不同的表现. 我们来看个实际的例子,假设我们想要创建一个HMTL页面生成器,HTML页面的基本结构(构造组件)通常是一 ...
- 哪个U盘启动工具能安装红帽系统,
安装红帽子,不要使用windows系统下的PE启动盘,两者引导方式不一样,不通用的.正确的方法是网上下载红帽子的ISO镜像文件后,用UltraISO这个工具写入优盘或者光盘,得到的系统盘才可以启动电脑 ...
- 22.ThinkPHP5框架缺陷导致远程命令执行
前言: 昨天爆出了ThinkPHP5框架缺陷导致远程命令执行,大佬们都赶上潮流挖洞,小白还是默默学习一下这个漏洞 漏洞影响范围: Thinkphp 5.1.0 - 5.1.31 Thinkphp 5. ...