`
willeager
  • 浏览: 95181 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

SOAP简单例子

    博客分类:
  • PHP
阅读更多

soap_client.php

<?php
  $client = new SoapClient('http://www.phptest.com/soap/soap_server.php?WSDL');
  //$client = new SoapClient('http://localhost/php/soap/math.wsdl');
  try {
    $result = $client->div(10, 2); // will cause a Soap Fault if divide by zero
    print "The answer is: $result";
  } catch(SoapFault $e) {
    print "Sorry an error was caught executing your request: {$e->getMessage()}";
  }

?>

 

soap_server.php

<?php

class math {

  public function add($a, $b) {
    return $a + $b;
  }
  
  public function div($a, $b) {
    if($b == 0) {
      throw new SoapFault(-1, "Cannot divide by zero!");
    }
    return $a / $b;
  }  
}
$server = new SoapServer('math.wsdl', array('soap_version' => SOAP_1_2));
$server->setClass("math");
$server->handle();
  
?>
 

math.wsdl (可以通过zend studio生成)

<?xml version='1.0' encoding='UTF-8'?>

<!-- WSDL file generated by Zend Studio. -->

<definitions name="math" targetNamespace="urn:math" xmlns:typens="urn:math" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
	<message name="add">
		<part name="a" type="xsd:integer"/>
		<part name="b" type="xsd:integer"/>
	</message>
	<message name="addResponse">
		<part name="addReturn" type="xsd:integer"/>
	</message>
	<message name="div">
		<part name="a" type="xsd:integer"/>
		<part name="b" type="xsd:integer"/>
	</message>
	<message name="divResponse">
		<part name="divReturn" type="xsd:double"/>
	</message>
	<portType name="mathPortType">
		<documentation>
			A simple math utility class
		</documentation>
		<operation name="add">
			<documentation>
				Add two integers together
			</documentation>
			<input message="typens:add"/>
			<output message="typens:addResponse"/>
		</operation>
		<operation name="div">
			<documentation>
				Div two integers from each other
			</documentation>
			<input message="typens:div"/>
			<output message="typens:divResponse"/>
		</operation>
	</portType>
	<binding name="mathBinding" type="typens:mathPortType">
		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="add">
			<soap:operation soapAction="urn:mathAction"/>
			<input>
				<soap:body namespace="urn:math" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body namespace="urn:math" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
		</operation>
		<operation name="div">
			<soap:operation soapAction="urn:mathAction"/>
			<input>
				<soap:body namespace="urn:math" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body namespace="urn:math" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
		</operation>
	</binding>
	<service name="mathService">
		<port name="mathPort" binding="typens:mathBinding">
			<soap:address location="http://www.phptest.com/soap/soap_server.php"/>
		</port>
	</service>
</definitions>
 

 

 

 

 

 

分享到:
评论

相关推荐

    SOAP WebService简单例子

    【SOAP WebService简单例子】 SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web上交换结构化和类型化的信息。它允许服务提供者和消费者之间进行远程调用,使得分布式应用程序能够相互通信。在...

    CXF SOAP应用实例

    对于SOAP客户端,CXF提供了JAX-WS API,允许开发者通过简单的API调用来访问SOAP服务。可以使用WSDL URL生成客户端代理类,通过代理类方法与服务进行交互。 5. **SOAP消息处理** CXF允许自定义SOAP消息处理器,...

    soap简单入门程序

    这个“soap简单入门程序”是一个基础的学习资源,旨在帮助初学者理解SOAP协议的基本概念和工作原理。 首先,我们需要了解SOAP的核心组成部分。SOAP消息通常包含三部分:Header、Body和Envelope。Header用来传递元...

    Soap—WebServer解析简单例子

    以上就是一个简单的SOAP Web服务及Android客户端的实例。通过这个例子,我们可以了解到SOAP协议如何在Web服务和客户端之间传递数据,以及如何在Android应用中调用这些服务。学习并理解SOAP通信机制对于开发分布式...

    php soap操作实例

    SOAP(Simple Object Access Protocol),简单对象访问协议,是一种基于XML的协议,用于在不同网络环境下的应用程序之间交换数据。在PHP中,SOAP库提供了与SOAP服务器交互的能力,允许开发者创建客户端和服务端应用...

    Java使用SOAP获取webservice实例解析

    ### Java使用SOAP获取WebService实例解析 #### WebService简介 WebService是一种跨编程语言和操作系统平台的、在网络上进行数据交换的一种方式。它使用标准的Internet协议,如HTTP、XML、SOAP等来实现不同系统间的...

    apache soap的hello例子

    在这个"apache soap的hello例子"中,我们将探讨如何使用Apache SOAP实现一个简单的“Hello World”服务。 首先,让我们理解SOAP的基本结构。SOAP消息通常包含三个主要部分:Header、Body和Envelope。Header用于传递...

    SOAP文档及实例

    **SOAP(简单对象访问协议)**是Web服务通信的标准之一,用于在分布式环境中交换结构化和类型化的信息。它基于XML(可扩展标记语言),确保数据的独立性和平台中立性,使得不同系统间的交互变得可能。SOAP消息通常...

    SOAP调用webservice例子

    以下是一个简单的例子: ```java // 创建服务端点接口的引用 HelloService service = new HelloService(); HelloPortType port = service.getHelloPort(); // 调用服务方法 String response = port.sayHello("World...

    SOAP Axis 三种发布调用方式简单实例

    本实例主要探讨了使用Axis进行SOAP Web服务发布的三种方法以及如何进行调用。 1. **命令行发布(Axis Ant Task)** Axis提供了Ant任务来发布Web服务。首先,你需要在项目中集成Ant构建工具,并将Axis的库文件添加...

    webService Soap实例

    首先,"firstwebservice"可能是一个基础的SOAP Web服务示例,它可能包含了一个服务端(Server)和客户端(Client)的简单实现。服务端通常会定义一个或多个操作(Operations),这些操作可以通过WSDL(Web Services ...

    PB9-soap-WEBSERVICE例子.rar

    标题中的“PB9-soap-WEBSERVICE例子.rar”表明这是一个关于PowerBuilder 9(简称PB9)使用SOAP(简单对象访问协议)调用Web服务的示例压缩包。这个例子可能包含完整的代码、配置文件以及相关的说明文档,用于演示...

    Soap2Android实例

    Soap2Android是一个用于将SOAP(简单对象访问协议)服务转换为Android友好的API的工具或框架,它使得Android开发者能够更方便地与基于SOAP的Web服务进行交互。在这个实例中,我们将深入探讨如何使用Soap2Android来...

    java+soap整个实例包括jar包

    在本实例中,我们将深入探讨如何使用Java来创建和使用SOAP Web服务,以及涉及的相关jar包。 首先,SOAP是一种基于XML的协议,用于在Web上交换结构化和类型化的信息。它的主要优点在于其平台和语言独立性,使得Java...

    mule使用SOAP工件发布和消费web Service的简单例子

    总结来说,"mule使用SOAP工件发布和消费web Service的简单例子"是关于利用Mule ESB创建和使用SOAP服务的一个实践教程。通过"hello-ws"示例,我们可以深入理解SOAP服务的生命周期,从定义WSDL到编写服务逻辑,再到...

    简单对象协议(SOAP)简介.doc

    结合实例对soap协议进行简单介绍,初学者很值得学习

    一个soap例子,欢迎下载

    这个例子显然提供了一个实际应用SOAP的实例,用于与第三方程序进行TCP/IP通信并实现SOAP协议的转换。下面将详细解释SOAP的相关知识点。 1. **SOAP简介**: SOAP是一种简单的基于XML的协议,最初设计用于在分布式...

    SOAP 教程 是一种简单的基于 XML 的协议

    SOAP消息结构简单且可扩展,能够适应互联网环境。 在SOAP教程中,你会逐步了解以下关键概念: 1. **SOAP简介**: - SOAP是简易对象访问协议,用于应用程序间的通信。 - 它是一种基于XML的消息传递协议,设计用于...

    Laravel开发-laravel-soap Soap 协议客户端

    在Laravel应用中,可以创建一个SOAP客户端实例,然后调用服务的方法。例如: ```php use WsScgi\LaravelSoap\SoapClient; $client = new SoapClient('http://example.com/soap/service?wsdl'); $response = $client...

Global site tag (gtag.js) - Google Analytics