一 什么是SOAP?可以做什么?

SOAP 指简单对象访问协议,它是一种基于XML的消息通讯格式,用于网络上,不同平台,不同语言的应用程序间的通讯。可自定义,易于扩展。一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
• Envelope 元素,标识XML 文档一条 SOAP 消息
• Header 元素,包含头部信息的XML标签
• Body 元素,包含所有的调用和响应的主体信息的标签
• Fault 元素,错误信息标签。

二 什么是WSDL?可以做什么?

WSDL 指网络服务描述语言。是一种基于XML编写的文档。为用户提供详细的接口说明书。

怎样向别人介绍你的Web服务(Web Service)有哪些功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,甚至可能会口头告诉使用你Web服务的人。

这些非正式的的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web服务的时候,他们的开放环境无法给他们提供任何帮助,因为这些工具根本不了解你的Web服务.

解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web服务描述语言(WSDL)就是这样一个基于XML的语言。用于描述Web服务及其函数,参数,返回值。因是基于XML,所以WSDL即使机器可阅读,又是人可阅读的。

三 利用PHP SOAP实例Web Service

php有两个扩展可以实现web service,一个是NuSoap,一个是php 官方的soap扩展,由于soap是官方的,所以我们这里以soap来实现web service.由于默认是没有打开soap扩展的,所以自己先看一下soap扩展有没有打开。

在soap编写web service的过程中主要用到了SoapClient,SoapServer,SoapFault三个类。

SoapClient类

这个类用来使用Web services。SoapClient类可以作为给定Web services的客户端。
它有两种操作形式:

* WSDL 模式

* Non-WSDL 模式

在WSDL模式中,构造器可以使用WSDL文件名作为参数,并从WSDL中提取服务所使用的信息。

non-WSDL模式中使用参数来传递要使用的信息。

SoapServer类

这个类可以用来提供Web services。与SoapClient类似,SoapServer也有两种操作模式:WSDL模式和non-WSDL模式。这两种模式的意义跟 SoapClient的两种模式一样。在WSDL模式中,服务实现了WSDL提供的接口;在non-WSDL模式中,参数被用来管理服务的行为。

在SoapServer类的众多方法中,有三个方法比较重要。它们是SoapServer::setClass(),SoapServer::addFunction()和SoapServer::handle()。

四 实例

定义一个提供服务的php类,这个类所提供的函数就是web service对外提供的服务

Class PersonInfo
{/***    返回姓名*    @return string **/public function getName($name){return "My Name is " . $name;}
}

下面给出服务器端的代码:

//包含提供服务的类进来
include 'test.php';
/*创建soap服务端参数1 : wsdl的URL地址,如果不是wsdl模式,传个NULL参数2 : 如果是wsdl模式,可以不传.如果不是wsdl模式,传个数组.定义个uri子单元.*/
$s = new SoapServer(null,array("uri"=>"此处随便写,只是命名空间"));//设置用于处理SOAP请求的类
$s -> setClass("PersonInfo");
//处理请求
$s -> handle();

下面给出客户端的代码:

try{//创建soap的客户端//参数1             wdsl地址//参数2[location]   处理soap请求的地址. //参数2[uri]        命名空间$soap = new SoapClient(null,array('location'=>"http://localhost/test2.php",'uri'=>'hwhwthhsdhg'));//两种调用方式,直接调用方法,和用__soapCall调用echo $r = $soap->getName('tlijian1989');  }catch(SoapFault $e){echo $e->getMessage();
}catch(Exception $e){echo $e->getMessage();
}

转载于:https://www.cnblogs.com/tlijian/p/3621192.html

利用PHP SOAP实现web service相关推荐

  1. 如何在 SAP BTP 平台 ABAP 编程环境里消费基于 SOAP 的 Web Service

    这是 Jerry 2021 年的第 47 篇文章,也是汪子熙公众号总共第 324 篇原创文章. Jerry 2014 年时,曾经在 SAP 社区上写过一篇英文博客,介绍了如何在 ABAP On-Pre ...

  2. 利用Appscan对REST Web service进行安全扫描

    近年来 Web 服务应用日趋广泛,人们往往利用 Web 服务集成不同平台的应用程序,或是将公共服务通过服务接口暴露给外部用户使用.这样便为黑客利用 Web 服务攻击企业应用提供了可乘之机.本文主要介绍 ...

  3. Spring Boot文档阅读笔记-构建SOAP的web Service Client

    同样,这里是使用Maven及Java8 同样Maven添加如下依赖: <dependency><groupId>wsdl4j</groupId><artifa ...

  4. 中间件——利用Axis 2 进行Web service开发(中英文双向翻译,中国邮政编码--地址信息查询)

    问题描述: 1.利用Java Swing 或SWT 开发一桌面应用程序 2.应用程序中集成以下网站提供的的Web服务:http://www.webxml.com.cn/zh_cn/web_servic ...

  5. Spring Boot文档阅读笔记-构建SOAP的web Service服务

    这里使用的Maven,Java 8来操作的. Maven相关代码为: <dependencies><dependency><groupId>org.springfr ...

  6. SOA技术相关介绍(RPC, Web Service, REST,SOAP,JMI)

    概念介绍 SOA(面向服务的软件架构.Service Oriented Architecture),是一种软件设计模式,主要应用于不同应用组件之间通过某种协议来互操作.例如典型的  通信网络协议.因此 ...

  7. SOAP最全Web Service渗透测试总结

    干货 | 最全Web Service渗透测试总结 - SecPulse.COM | 安全脉搏 0x00 前言 补充一下Web Service以及SOAP型这块资料. 0x01 Web Service基 ...

  8. Web Service 安全性解决方案(SOAP篇)

    拼吾爱程序人生 » 软件编程 » Visual Studio.NET » Web Service » Web Service 安全性解决方案(SOAP篇) Web Service 安全性解决方案(SO ...

  9. Web Service技术的SOAP实现

    写在前面的话:本文章由刘源师兄分享,非我原创.此处仅作学习记录之用. 0 SOA 1 简介 1.1 提出 1.2 定义 1.3 特点 1.4 主要实现方式 1.5 架构 1.6 组成元素 1.6.1 ...

最新文章

  1. [文档].Altera – SOPC Builder组件开发攻略
  2. Windows Live Windows Phone 7
  3. 【网站部署】解析二级域名并部署网站
  4. 海神祭司被机器人拉出来_全联盟最不怕机器人钩子的四个英雄,最后一个巴不得被钩中...
  5. Shell脚本之grep
  6. python特征数据类型及常用操作对比_更高效的利用Jupyter+pandas进行数据分析,6种常用数据格式效率对比!...
  7. [下载]活学活用DataGrid控件与ADO.NET
  8. k8s/docker 安装yapi和MongoDB
  9. 【问题2】如何保证缓存与数据库的双写一致性?
  10. TCN-时间卷积网络
  11. 小度WiFi作为无线网卡设置的方法
  12. 谷歌大脑的“世界模型”简述与启发
  13. 不再因BT吃官司 Magnet能否将BT漂白?
  14. 测试底妆的软件,底妆日记 | 我用半个月的时间,测试了我所遇过最贵的底妆
  15. 微信小程序 java四六级英语学习助手系统app
  16. 求一个3×3矩阵对角线元素之和。
  17. 【转】XenServer错误恢复:断电网卡丢失.虚拟机(VPS)不见
  18. iOS新特性框架、仿微信图片浏览、视频监控、爱心动画、文字适配等源码
  19. vue组件加载完成之后执行方法_vue-cli监听组件加载完成的方法
  20. 解忧杂货店—你的问题,我来解答

热门文章

  1. 十分钟看懂什么是VoLTE【包学包会,否则退款】
  2. [机器学习 ] RandomForest、GBDT、XGBoost、lightGBM 原理与区别
  3. JavaEE 7 正式发布
  4. 基于kb的问答系统_1KB以下基于表的Q学习
  5. 编写分段函数子函数_编写自己的函数
  6. 房贷利率上浮30%利息太高吃不消,如何让利率变成下浮10%?
  7. 如果波音公司破产,对美国经济的影响有多大?
  8. c语言grade d10,《电子技术10级C语言课程设计报告书写规范》.doc
  9. script标签里src为php,如何获取指定为script标记的'src'的文件的内容?
  10. python奖励多少钱_关于python的问题,好的高奖励!