2024首更---Web Service 教程

Web Services 简介


Web Services 可使您的应用程序成为 Web 应用程序。

Web Services 通过 Web 进行发布、查找和使用。


您应当具备的基础知识

在继续学习之前,您需要对下面的知识有基本的了解:

  • HTML
  • XML

如果您希望首先学习这些项目,请在我们的首页访问这些教程。


什么是Web Services?

  • Web Services 是应用程序组件
  • Web Services 使用开放协议进行通信
  • Web Services 是独立的(self-contained)并可自我描述
  • Web Services 可通过使用UDDI来发现
  • Web Services 可被其他应用程序使用
  • XML 是 Web Services 的基础

它如何工作?

基础的 Web Services 平台是 XML + HTTP。

HTTP 协议是最常用的因特网协议。

XML 提供了一种可用于不同的平台和编程语言之间的语言。

Web services 平台的元素:

  • SOAP (简易对象访问协议)
  • UDDI (通用描述、发现及整合)
  • WSDL (Web services 描述语言)

我们会在本教程后面章节讲解这些主题。

为什么使用 Web Services?


几年前,Web services 的速度还没有快到让人们产生兴趣的程度。


最重要的事情是协同工作

由于所有主要的平台均可通过 Web 浏览器来访问 Web,不同的平台可以借此进行交互。为了让这些平台协同工作,Web 应用程序被开发了出来。

Web 应用程序是运行在 Web 上的简易应用程序。它们围绕 Web 浏览器标准被进行构建,几乎可被任何平台之上的任何浏览器来使用。


Web services 把 Web 应用程序提升到了另外一个层面

通过使用 Web services,您的应用程序可向全世界发布功能或消息。

Web services 使用 XML 来编解码数据,并使用 SOAP 借由开放的协议来传输数据。

通过 Web services,您的会计部门的 Win 2k 服务器可与 IT 供应商的 UNIX 服务器进行连接。


Web services 有两种类型的应用

可重复使用的应用程序组件

有一些功能是不同的应用程序常常会用到的。那么为什么要周而复始地开发它们呢?

Web services 可以把应用程序组件作为服务来提供,比如汇率转换、天气预报或者甚至是语言翻译等等。

比较理想的情况是,每种应用程序组件只有一个最优秀的版本,这样任何人都可以在其应用程序中使用它。

连接现有的软件

通过为不同的应用程序提供一种链接其数据的途径,Web services有助于解决协同工作的问题。

通过使用 Web services,您可以在不同的应用程序与平台之间来交换数据。

Web Services 平台元素


Web Services 拥有三种基本的元素: SOAP、WSDL 以及 UDDI。


什么是 SOAP?

基本的 Web services 平台是 XML + HTTP。

  • SOAP 指简易对象访问协议
  • SOAP 是一种通信协议
  • SOAP 用于应用程序之间的通信
  • SOAP 是一种用于发送消息的格式
  • SOAP 被设计用来通过因特网进行通信
  • SOAP 独立于平台
  • SOAP 独立于语言
  • SOAP 基于 XML
  • SOAP 很简单并可扩展
  • SOAP 允许您绕过防火墙
  • SOAP 将作为 W3C 标准来发展

如需更多有关 SOAP 的知识,请访问我们的《SOAP 教程》


什么是 WSDL?

WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。

  • WSDL 指网络服务描述语言
  • WSDL 使用 XML 编写
  • WSDL 是一种 XML 文档
  • WSDL 用于描述网络服务
  • WSDL 也可用于定位网络服务
  • WSDL 还不是 W3C 标准

如需更多有关 WSDL 的知识,请访问我们的《WSDL 教程》


什么是 UDDI?

UDDI是统一描述、发现和集成(Universal Description, Discovery, and Integration)的缩写。

UDDI 是一种目录服务,通过它,企业可注册并搜索 Web services。

它是一个基于 XML 的跨平台的描述规范,可以使世界范围内的企业在互联网上发布自己所提供的服务。

  • UDDI 指通用的描述、发现以及整合(Universal Description, Discovery and Integration)。
  • UDDI 是一种用于存储有关 web services 的信息的目录。
  • UDDI 是一种由 WSDL 描述的网络服务接口目录。
  • UDDI 经由 SOAP 进行通迅。
  • UDDI 被构建于 Microsoft .NET 平台之中。

 

Web Service 实例


任何应用程序都可拥有 Web Service 组件。

Web Service 的创建与编程语言的种类无关。

本章节我们将为大家介绍使用 PHP 的 SOAP 扩展来创建 Web Service。

SOAP有两种操作方式,NO-WSDL 与 WSDL。

  • NO-WSDL模式:使用参数来传递要使用的信息。
  • WSDL模式: 使用WSDL文件名作为参数,并从WSDL中提取服务所需的信息。

一个实例:PHP Web Service

在开始实例前,我们需要确定PHP是否安装了 SOAP 扩展。查看 phpinfo,出现以下信息表明已经安装了 SOAP 扩展:

在这个例子中,我们会使用 PHP SOAP 来创建一个简单的 Web Service。

服务端 Server.php 文件代码如下:

<?php 
// SiteInfo 类用于处理请求
Class SiteInfo
{/***    返回网站名称*    @return string **/public function getName(){return "菜鸟教程";}public function getUrl(){return "www.runoob.com";}
}// 创建 SoapServer 对象
$s = new SoapServer(null,array("location"=>"http://localhost/soap/Server.php","uri"=>"Server.php"));// 导出 SiteInfo 类中的全部函数
$s->setClass("SiteInfo");
// 处理一个SOAP请求,调用必要的功能,并发送回一个响应。
$s->handle();
?>

客户端 Client.php 文件代码如下:

<?php
try{// non-wsdl方式调用web service// 创建 SoapClient 对象$soap = new SoapClient(null,array('location'=>"http://localhost/soap/Server.php",'uri'=>'Server.php'));// 调用函数 $result1 = $soap->getName();$result2 = $soap->__soapCall("getUrl",array());echo $result1."<br/>";echo $result2;
} catch(SoapFault $e){echo $e->getMessage();
}catch(Exception $e){echo $e->getMessage();
}

这时我们访问 http://localhost/soap/Client.php,输出结果如下所示:

您已经学习了 Web Services, 下一步学习什么内容呢?


Web Services 概要

本教程已经向您讲解了如何把应用程序转换为网络应用程序.

您已经学习了如何使用 XML 在应用程序间发送消息。

您也学习了如何从应用程序导出某项功能(创建一个 web service)。


您已经学习了 Web Services,下一步呢?

下一步您应当学习 WSDL 和 SOAP。

WSDL

WSDL 是基于 XML 的用来描述 Web services 以及如何访问它们的一种语言。

WSDL 可描述 web service,连同用于 web service 的消息格式和协议的细节。

SOAP

SOAP 是一种使应用程序有能力通过 HTTP 交换信息的基于 XML 的简易协议。

或者可以更简单地说:SOAP 是一种用于访问 web service 的协议。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/419541.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C - Monotonically Increasing

很妙的dfs&#xff1a;记录层数以及前一个数是多少。 代码&#xff1a; int ans[11]; int n,m;void dfs(int u,int pre){if(un1){for(int i1;i<n;i)cout<<ans[i]<< ;cout<<endl;return;}for(int ipre1;i(n-u)<m;i){ans[u]i;dfs(u1,i);} }void solve(…

一起来看看,C++11标准,那些超实用的新特性有哪些?

C11标准是 ISO/IEC 14882:2011 - Information technology -- Programming languages -- C 的简称&#xff0c;也称为C0x。它由国际标准化组织&#xff08;ISO&#xff09;和国际电工委员会&#xff08;IEC&#xff09;旗下的C标准委员会&#xff08;ISO/IEC JTC1/SC22/WG21&…

使用Scrapy 爬取“http://tuijian.hao123.com/”网页中左上角“娱乐”、“体育”、“财经”、“科技”、历史等名称和URL

一、网页信息 二、检查网页&#xff0c;找出目标内容 三、根据网页格式写正常爬虫代码 from bs4 import BeautifulSoup import requestsheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/53…

一.Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定地址

Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定地址 参考文档 WinForms 应用中的 WebView2 入门 实现 1.安装visual studio 按照官方文档一路操作&#xff0c;可以自行百度或者查看WinForms 应用中的 WebView2 入门。为了避坑&#xff0c;本人安…

《游戏-02_2D-开发》

基于《游戏-01_2D-开发》&#xff0c; 继续制作游戏&#xff1a; 首先给人物添加一个2D重力效果 在编辑的项目设置中&#xff0c; 可以看出unity默认给的2D重力数值是-9.81&#xff0c;模拟现实社会中的重力效果 下方可以设置帧率 而Gravity Scale代表 这个数值会 * 重力 还…

WorkPlus Meet私有化视频会议软件-构建安全高效的内网会议体验

在企业内部&#xff0c;高效的会议协作是推动团队协同和工作效率的关键。而内网会议系统成为了构建安全高效的内部会议体验的必要工具。作为一家领先的内网会议系统&#xff0c;WorkPlus Meet以其卓越的性能和智能化的功能&#xff0c;助力企业实现高效安全的内部会议体验。 为…

【图解数据结构】顺序表实战指南:手把手教你详细实现(超详细解析)

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;图解数据结构、算法模板 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 一. ⛳️线性表1.1 &#x1f514;线性表的定义1.2 &#x1f514;线性表的存储结构 二. ⛳️顺序表…

P2P DMA并不是所有场景都会有性能提升

P2P (Peer-to-Peer) DMA技术理论上可以带来性能提升&#xff0c;特别是在特定的工作负载和场景下。例如&#xff0c;当两个高速设备&#xff08;如GPU与NVMe SSD&#xff09;需要频繁进行大量数据交换时&#xff0c;通过P2P DMA&#xff0c;数据可以直接在设备间传输&#xff0…

Three.js 学习笔记之模型(学习中1.20更新) | 组 - 模型 - 几何体 - 材质

文章目录 模型 几何体 材质层级模型组- THREE.Group递归遍历模型树结构object3D.traverse() 模型点模型Points - 用于显示点线模型Line | LineLoop | LineSegments网格模型mesh - 三角形网格模型独有的属性与方法 几何体BufferGeometry缓冲类型几何体BufferGeometry - 基类创…

Servlet系列:两种创建方式(xml,注解)

一、使用web.xml的方式配置&#xff08;Servlet2.5之前使用&#xff09; 在早期版本的Java EE中&#xff0c;可以使用XML配置文件来定义Servlet。在web.xml文件中&#xff0c;可以定义Servlet的名称、类名、初始化参数等。然后&#xff0c;在Java代码中实现Servlet接口&#x…

中国电子学会2022年6月份青少年软件编程Scratch图形化等级考试试卷一级真题

一、单选题(共25题&#xff0c;共50分) 1.广场中有声控喷泉&#xff0c;当声音的音量大于60的时候&#xff0c;喷泉就会喷出水&#xff0c;现在的音量为30&#xff0c;下列哪个选项可以让喷泉喷出水&#xff1f;&#xff08;2分&#xff09; A. B. C. D. 答案解析&#x…

接口测试 02 -- JMeter入门到实战

前言 JM eter毕竟是做压测的工具&#xff0c;自动化这块还是有缺陷。 如果公司做一些简单的接口自动化&#xff0c;可以考虑使用JMeter快速完成&#xff0c;如果想做完善的接口自动化体系&#xff0c;建议还是基于Python来做。 为什么学习接口测试要先从JMeter开始&#xff1f;…