转载自: http://www.cnblogs.com/phpzxh/archive/2011/04/21/2023431.html

PHP 使用soap有两种方式。

一、用wsdl文件

服务器端。

<?php
class service
{public function HelloWorld(){return  "Hello";}public  function Add($a,$b){return $a+$b;}
}
$server=new SoapServer('soap.wsdl',array('soap_version' => SOAP_1_2));
$server->setClass("service");
$server->handle();
?>资源描述文件,可以用工具(zend studio)生成。其实就是一个xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://localhost/interface/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="soap" targetNamespace="http://localhost/interface/"><wsdl:types><xsd:schema targetNamespace="http://localhost/interface/"><xsd:element name="HelloWorld"><xsd:complexType><xsd:sequence><xsd:element name="in" type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="HelloWorldResponse"><xsd:complexType><xsd:sequence><xsd:element name="out" type="xsd:string"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="Add"><xsd:complexType><xsd:sequence><xsd:element name="in" type="xsd:int"></xsd:element></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="AddResponse"><xsd:complexType><xsd:sequence><xsd:element name="out" type="xsd:int"></xsd:element></xsd:sequence></xsd:complexType></xsd:element></xsd:schema></wsdl:types><wsdl:message name="AddRequest">      <wsdl:part name="a" type="xsd:int"></wsdl:part><wsdl:part name="b" type="xsd:int"></wsdl:part></wsdl:message><wsdl:message name="AddResponse"><wsdl:part name="c" type="xsd:int"></wsdl:part></wsdl:message><wsdl:portType name="TestSoap">     <wsdl:operation name="Add"><wsdl:input message="tns:AddRequest"></wsdl:input><wsdl:output message="tns:AddResponse"></wsdl:output></wsdl:operation></wsdl:portType><wsdl:binding name="soapSOAP" type="tns:TestSoap"><soap:binding margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 18px; color: rgb(139, 0, 0); ">document"transport="http://schemas.xmlsoap.org/soap/http" /><wsdl:operation name="Add"><soap:operation soapAction="http://localhost/interface/Add" /><wsdl:input><soap:body use="literal"namespace="http://localhost/interface/" /></wsdl:input><wsdl:output><soap:body use="literal"namespace="http://localhost/interface/" /></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="TestSoap"><wsdl:port binding="tns:soapSOAP" name="soapSOAP"><soap:address location="http://localhost/interface/myservice.php"/></wsdl:port></wsdl:service>
</wsdl:definitions>
客户端调用

<?php
$soap = new SoapClient('http://localhost/interface/soap.wsdl');
echo $soap->Add(1,2);
?>

二、不用wsdl文件

服务器端

<?php
class service
{public function HelloWorld(){return  "Hello";}public  function Add($a,$b){return $a+$b;}
}
$server=new SoapServer(null,array('uri' => "abcd"));
$server->setClass("service");
$server->handle();
?>
客户端

<?php
try{$soap = new SoapClient(null,array("location" => "http://localhost/interface/soap.php","uri"      => "abcd",  //资源描述符服务器和客户端必须对应"style"    => SOAP_RPC,"use"      => SOAP_ENCODED));echo $soap->Add(1,2);
}catch(Exction $e){echo print_r($e->getMessage(),true);
}
?>

[转] PHP之soap: soap使用例子相关推荐

  1. PHP ‘ext/soap/soap.c’权限许可和访问控制

    漏洞名称: PHP 'ext/soap/soap.c'权限许可和访问控制 CNNVD编号: CNNVD-201303-092 发布时间: 2013-03-07 更新时间: 2013-03-07 危害等 ...

  2. 怎么改造http服务器响应soap,SOAP HTTP 绑定

    HTTP 在 TCP/IP 之上进行通信 HTTP 客户机使用 TCP 连接到 HTTP 服务器. 在建立连接之后,客户机可向服务器发送 HTTP 请求消息: POST /item HTTP/1.1 ...

  3. 什么是SOAP,SOAP是什么

    SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelo ...

  4. php soap 例子,GitHub - ueaner/soap: PHP SOAP 实例

    PHP SOAP 实例 简介 通常我们的应用服务需要在不同的平台进行交互操作的时候,会使用 WEB服务. 常用的WEB服务有以下三种: SOAP(简单对象访问协议): 支持多种协议(http/http ...

  5. 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解

    2019独角兽企业重金招聘Python工程师标准>>> SOA: 维基百科解释:SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机 ...

  6. 彻底理解webservice SOAP WSDL

    WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...

  7. vc开发soap客户端(方式一)

    SoapSerializer SoapSerializer对象用来构建一个向Web服务发送的SOAP消息.在与服务器连接前,SoapSerializer对象必须与 SoapConnector对象连接. ...

  8. SOAP HTTP绑定

    HTTP协议 HTTP在TCP/IP之上进行通信.HTTP客户机使用TCP连接到HTTP服务器.在建立连接之后,客户机可向服务器发送HTTP请求消息: SOAP HTTP Binding soap方法 ...

  9. 开启php soap,php soap 开发文档

    一. 必备知识 1.wsdl(web服务标记语言) WSDL(网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Ser ...

最新文章

  1. AI时代,中国技术创新如何弯道超车?
  2. Java6程序设计基础教程_【Java】《Java程序设计基础教程》第三章学习
  3. python最简单的爬取邮箱地址_python简单爬虫,抓取邮箱
  4. 以女朋友为例讲解 TCP/IP 三次握手与四次挥手
  5. Centos添加其他yum源
  6. WPF ListBox样式去掉默认选中效果
  7. android 菜单隐藏了,隐藏一些导航菜单菜单项 – Android
  8. Python清理微信被好友删除的人
  9. iOS 蓝牙开发用到的一些格式转换
  10. 年终盘点丨2021边缘计算大事记
  11. 看看雅虎助手是如何“兔子”和“360安全卫士”的
  12. 《微软System Center 2012 R2私有云部署实战》——1.4 微软私有云
  13. 关于diskpart的命令问题记录
  14. python房价预测_人工智能python实现-预测房价:回归问题
  15. 【云和恩墨】内外兼修:Oracle ACED熊军谈Oracle学习
  16. 王者荣耀有史以来被削废的英雄盘点:还记得那个超级兵吗?
  17. 游戏开发 数据库ID设计 ID生成器
  18. Intellij IDEA 2019 激活码(注册码)
  19. 程序运算小数时为什么会出错?
  20. 浅谈 TS 标称类型介绍及社区实现

热门文章

  1. php 发送表单数据,php - 将表单数据发送到会话变量 - SO中文参考 - www.soinside.com...
  2. 深入理解基本包装类型
  3. 判断php对象不包含的key,如何判断一个对象是否包含指定Key
  4. java freemark 使用_freemarker单独使用介绍
  5. 硬币兑换python 每个面值有多个_【算法27】硬币面值组合问题
  6. oracle数据库静态启动,ORACLE数据库的连接
  7. sqlserver 2008r2 执行代码 快捷键
  8. Zigbee 学习计划——第1天——第一个程序
  9. 再说过程和结果的关系
  10. linux下的/dev/shm/ 以及与swap目录的区别