WebService
来源:互联网 发布:迅龙数据恢复 编辑:程序博客网 时间:2024/06/05 08:20
1、WebService
WebService可以跨平台的使用第三方的数据,根据WebService规范,无论使用什么语言(不同的后台,比如java,.net等)都可以实现数据交互或者集成。比如我们在做java网站的时候,想实现一个天气,或者快递查询的功能(它们的后台并不一定是java的,可以是各种语言),这样有了WebService就可以轻松实现获取数据。
比如说:有了WebService我们可以轻松的实现查询天所,手机号,股票,新闻,火车票等数据
2、java中的WebService
1、java中有三种WebService的实现:
- JAX-WS(JAX-RPC)
- AXM&SAAJ
- AX-RS
从java5开始支持JAX-WS2.0,jdk1.7支持JAX-WS2.2版本
因此使用java开发WebService非常方便
3、WebService三要素
WebService三要素:SOAP,WSDL,UDDI
SOAP:描述传递信息的格式
WSDL:用来描述如何访问具体接口
UDDI:用来管理,分发,查询WebService
1、WSDL
WSDL是(Web Service Description Language)用于描述WebService函数,参数和返回值
WSDL基于XML,以此便于阅读
如何查看WSDL:
在地址后面加上?wsdl即可查看wsdl,在java中可用wsimport生成java代码
根据service查找 port name和binding
然后查找方法,输入参数,转出值
2、SOAP
SOAP(Simple Object Access Protocol)是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
1、SOAP封装:它定义一个框架,描述消息中的内容是什么,是谁发送的,谁接收处理
2、SOAP编码规则:表示数据类型的实例
3、SOAP RPC:它定义一个协定,用于表示远程过程调用和应答
4、SOAP绑定:它定义SOAP使用哪个 协议交换信息
SOAP 是一种网络通信协议
SOAP即Simple Object Access Protocol简易对象访问协议
SOAP 用于跨平台应用程序之间的通信
SOAP 被设计用来通过因特网(http)进行通信
SOAP = HTTP+XML,其实就是通过HTTP发xml数据
SOAP 很简单并可扩展支持面向对象
SOAP 允许您跨越防火墙
SOAP 将被作为 W3C 标准来发展
SOAP请求是在http中
POST /weather HTTP/1.1Accept: text/xml, multipart/relatedContent-Type: text/xml; charset=utf-8SOAPAction: "http://xxx/queryWeatherRequest"User-Agent: JAX-WS RI 2.2.8 svn-revision#13980Host: 127.0.0.1:4321Connection: keep-aliveContent-Length: 232<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:queryWeather xmlns:ns2="http://xxxxx/"><arg0>北京</arg0></ns2:queryWeather></S:Body></S:Envelope>
响应
HTTP/1.1 200 OKTransfer-encoding: chunkedContent-type: text/xml; charset=utf-8<?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:queryWeatherResponse xmlns:ns2="http://xxx/"><return>天气晴朗</return></ns2:queryWeatherResponse></S:Body></S:Envelope>
3、UDDI
UDDI(Universal Description Discovery and Integration)企业可以通过它对Web Service进行注册和搜索。
4、使用
1、http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
2、根据WeatherWebService.wsdl生成java代码
在命令行中
进行到工作空间后用 wsimport -s .文件目录
然后生成代码如下:
3、调用webservice代码
public static void main(String[] args) throws MalformedURLException { // 创建服务视图 Service service = Service .create(new URL( "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"), new QName("http://WebXml.com.cn/", "WeatherWebService")); // 获得PortType WeatherWebServiceSoap portType = service .getPort(WeatherWebServiceSoap.class); // 调用服务端 ArrayOfString result = portType.getWeatherbyCityName("北京"); System.out.println(result.getString()); }
运行结果:
通过上面简单的几步就可以调用天气接口,实现天气查询的功能
- WebService
- WebService
- webservice
- webservice
- WebService
- webservice
- webService
- WebService
- WebService
- webService
- WEBService
- webService
- WebService
- [WebService]
- webservice
- WebService
- webservice
- WebService
- mac下的mysql配置
- 谈谈WebView弊端
- python的threading和multiprocessing模块初探
- Postman参数配置
- 欢迎使用CSDN-markdown编辑器
- WebService
- Open5GCore调研
- .text()跟.html()区别
- 虚幻4 几个常用属性说明及不同之处
- Contains Duplicate III
- php上传文件的准备工作
- android developer tiny share-20160927
- 软件工程常见问题(一)
- 在xcode中怎么看真机的沙盒