PHP SOAP 实例

简介

通常我们的应用服务需要在不同的平台进行交互操作的时候,会使用 WEB服务.

常用的WEB服务有以下三种:

SOAP(简单对象访问协议): 支持多种协议(http/https/smtp等),W3C专门定义的一些标准

XML-RPC(远程过程调用): 只支持http协议,没有标准

REST(表征状态转移): 只支持http协议,是一种针对于资源理解的URI设计风格而没有标准,

加上 OAuth(开放授权)会让你的WEB服务(或开放平台)看上去更加简洁和简单,之后的文章会详细介绍。

本篇文章重点:SOAP 简单对象访问协议(Simple Object Access Protocol)。

PHP SOAP

模式:

SOAP 分为 WSDL 和 non-WSDL 模式,可以简单理解为:WSDL 模式对外提供 WSDL 定义文件,

而 non-WSDL 模式不对外提供 WSDL 定义文件(会有人给你发一个接口文档的)。

依赖:

php-soap 扩展,如果不存在此扩展,安装:

# yum install php-soap

或编译 PHP:--enable-soap。

或使用:nusoap 包。

实例:

$ tar xf soap.tar.bz2

$ tree -C soap

soap

|-- class # 提供服务的类目录

|-- Person.class.php # 提供服务的类文件

|-- Client.php # 客户端类

|-- non-wsdl # non-WSDL 模式:提供服务的目录

|-- PersonService.php # non-WSDL 模式:提供服务的文件

|-- readme.txt # readme

|-- Service.php # 服务端类

|-- test.php # 测试文件

|-- wsdl # WSDL 模式:提供服务的目录

|-- PersonService.php # WSDL 模式:提供服务的文件

|-- xml # WSDL 模式:生成的 WSDL xml 的目录

|-- Person.wsdl # WSDL 模式:生成的 WSDL xml 的文件

4 directories, 8 files

Client.php 和 Service.php 均实现了 WSDL 和 non-WSDL 两种模式。

WSDL 模式 和 non-WSDL 模式对照表:

WSDL 模式 non-WSDL 模式

SoapServer

参数1 SomeService.php?wsdl null

参数2 uri 可有,可无 uri

SoapClient

参数1 SomeService.php?wsdl null

参数2 uri 可有,可无 uri + location

这里的 SomeService.php?wsdl 类似 http://127.0.0.1:80/soap/wsdl/PersonService.php?wsdl 这样的地址(有 ?wsdl),

location 是类似 http://127.0.0.1:80/soap/wsdl/PersonService.php 这样的地址(无 ?wsdl)。

uri 一般为你的根域名,如 http://localhost,或与 location 参数定义相同都可。

另外 WSDL 模式对外提供 WSDL 定义的 xml 文件,所以在以 GET 方式访问 http://127.0.0.1:80/soap/wsdl/PersonService.php?wsdl

地址时会输出相应的 xml 文件,对接口对象或函数进行说明。

php soap 例子,GitHub - ueaner/soap: PHP SOAP 实例相关推荐

  1. java中soap是什么,java中的soap的通讯

    由于 gSOAP 具有相当不错的兼容性, 通过 gSOAP, 我们就可以调用由 Java, .Net, Delhpi, PHP 等语言开发的 SOAP 服务,或者向它们提供 SOAP 服务. gSOA ...

  2. 直播绿幕抠图的例子(绿幕抠图直播实例参考)

    阿酷TONY  / 2022-11-21 / 长沙 什么是绿幕抠图: 设定绿幕或绿布,做直播软件抠图,这时绿幕绿布就可以被实时的抠掉,绿色就变成透明了,只剩下绿幕外的人物,此时添加上直播的背景画质,就 ...

  3. java写soap客户端_Java:简单的SOAP客户端

    我正在寻找一个用于 Java的SOAP客户端. Apache Axis对我来说看起来很blo肿.我不明白为什么Java必须如此复杂.例如,在PHP中,我所要做的就是: $global_service_ ...

  4. python发送soap报文_python用http发送soap报文进行webservice接口调用

    最近学习了python用http发送soap报文进行webservice接口调用,从网上找了些资料,为了方便下次温习,在此留下代码片段,也望高手指点: #!/usr/bin/env python # ...

  5. php soap 加符号报错,php soap错误获取http标头

    我正在开发一个 PHP脚本,它通过SOAP连接处理大量数据.如果脚本没有遇到任何错误,则估计脚本的总运行时间为几天.我遇到的问题是脚本将运行一段时间,从一小时到一天,然后SOAP连接将死于错误&quo ...

  6. java soap 解析_用Java解析SOAP响应

    我无法使用Java(使用Bonita Open Solution BPM)解析SOAP响应. 我有以下SOAP响应(在IBM Content Manager中搜索文档: SOAP响应返回1个匹配的文档 ...

  7. android soap webservice 数据流传输,Android利用Soap读取WebService并且解析XML的DataSet数据...

    一.Soap的结构 调用webService需要以下几个参数:命名空间.Soap Action.WSDL的URL.方法名.接下来以调用火车列车信息数据为例,webService地址为:webservi ...

  8. php访问数据库例子,PHP访问MSSQL数据库(实例代码)

    本例子只作为简单的引导,实现一个简单的查询: php中mssql数据库简单查询完整实例 //说明:测试的时候是连接的是远程的mssql数据库,没有在本机运行 //初始化mssql数据库连接,分别是 主 ...

  9. python多态的例子_Python编程之多态用法实例详解

    本文实例讲述了Python编程之多态用法.分享给大家供大家参考.具体分析如下: 什么是多态?顾名思义,多态就是多种表现形态的意思.它是一种机制.一种能力,而非某个关键字.它在类的继承中得以实现,在类的 ...

最新文章

  1. 人机交互、大数据分析:移动互联网的技术创新探索
  2. 关于Webstrom连接github的配置问题。
  3. Serverless在游戏运营行业进行数据采集分析的最佳实践 链接:
  4. 找回创新能力 才是苹果的救命稻草
  5. Python中re模块的常见方法
  6. Tips--解决BeatsX开机白灯闪三下无法连接问题(附拆机教程)
  7. Ruby on Rails Exception:Routing Error
  8. 关于Select option默认选中及查询后选项值保留的问题
  9. Windows电脑上最好的3个azw3阅读器
  10. 保险污名化?区块链赋予保险的「四个机会」
  11. Unity简易小地图制作
  12. 尚硅谷java——项目一 家庭收支记账软件
  13. vmware虚拟机扩展磁盘空间
  14. 安卓利用Xposed实现通话双向录音
  15. 中国联通沃云----弹性块存储使用说明
  16. 【7W字长文】使用LVS+Keepalived实现Nginx高可用,一文搞懂Nginx
  17. 绕圈圈面试题(Python经典编程案例)
  18. 信息技术计算机说课,信息技术说课稿
  19. 爬虫入门(给我爬!快!)
  20. 计算机网络教程第五版课后答案(第二章)

热门文章

  1. unity3d OpenCVForUnity(一)
  2. 上海有学计算机的职业学校吗,上海有学计算机专业的职业高中
  3. html5中的表格和表单总结
  4. 计算机速录学什么,计算机速录(高级技工)专业介绍
  5. 计算机系统的平板有哪些,二合一平板电脑有哪些
  6. 百度智慧城市解决方案大全(140页) 附下载
  7. android studio添加v7包,如何在Android Studio中添加RecyclerView-v7支持包
  8. (附源码)计算机毕业设计SSM智慧门诊综合管理系统
  9. 基于PS自动对比度、自动色阶算法
  10. https、ssl证书基本信息、证书链