文档章节

PHP 自身扩展 SOAP使用详解 (二)

LiMXHS
 LiMXHS
发布于 2013/10/07 20:20
字数 298
阅读 1674
收藏 13
点赞 0
评论 0

php 的 soap 返回数组:

services.php文件:

<?php
class services {  
  /**
    * Getdnstatus one string from each other
    * 
    * @param string $dn The first string of the subtraction
    * @return array The status of the tel
   */
  public function getdnstatus($dn){
  	if($dn == "8101"){
  		$status_arr = array("1","通话","1");
  	}else{
  		$status_arr = array("0","空闲","0");
  	}
  	return serialize($status_arr);
  }
}  
  $server = new SoapServer('service.wsdl', array('soap_version' => SOAP_1_2));  
  $server->setClass("services");  
  $server->handle();  
?>

service.wsdl文件:

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

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

<definitions name="service" targetNamespace="urn:service" xmlns:typens="urn:service" 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="getdnstatus">
		<part name="dn" type="xsd:string"/>
	</message>
	<message name="getdnstatusResponse">
		<part name="getdnstatusReturn" type="xsd:anyType"/>
	</message>
	<portType name="servicesPortType">
		<operation name="getdnstatus">
			<documentation>
				Getdnstatus one string from each other
			</documentation>
			<input message="typens:getdnstatus"/>
			<output message="typens:getdnstatusResponse"/>
		</operation>
	</portType>
	<binding name="servicesBinding" type="typens:servicesPortType">
		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="getdnstatus">
			<soap:operation soapAction="urn:servicesAction"/>
			<input>
				<soap:body namespace="urn:service" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body namespace="urn:service" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
		</operation>
	</binding>
	<service name="serviceService">
		<port name="servicesPort" binding="typens:servicesBinding">
			<soap:address location="http://10.1.7.153/soap/services.php"/>
		</port>
	</service>
</definitions>

客户端文件:client.php

<?php
  //$client = new SoapClient('http://10.1.7.153/soap/service.wsdl');   
  $client = new SoapClient("http://10.1.7.153/soap/services.php?WSDL");  
  try {  
  	$result = array();
	$result = $client->getdnstatus('8101');
	var_dump(unserialize($result));
  } catch(SoapFault $e) {  
	print "Sorry an error was caught executing your request: {$e->getMessage()}";  
  } 
?>

 

© 著作权归作者所有

共有 人打赏支持
LiMXHS
粉丝 0
博文 15
码字总数 4290
作品 0
昌平
程序员
PHP 自身扩展 SOAP 的使用详解

工作的项目需要使用其他公司的接口,对方给的接口是Web Service 的soap,之前没有使用过,这两天开始研究,了解了一个大概: php 自身soap: 1.服务器端:首先完成 service.php 服务器端的主要...

LiMXHS ⋅ 2013/10/07 ⋅ 0

php参数详解

[root@lnmp01 tools]# tar xf php-5.3.27.tar.gz解压压缩包 [root@lnmp01 tools]# cd php-5.3.27 进入php安装目录 ./configure 编译参数 –prefix=/application/php5.3.27 指定php的安装路径......

xiaofeng886 ⋅ 2017/03/24 ⋅ 0

php调用web services两种方法soap and xml-rpc

Web Service介绍 Web Service就是为了异构系统的通信而产生的,它基本的思想就是使用基于XML的HTTP的远程调用提供一种标准的机制,而省去建立一种新协议的需求。 目前进行Web Service通信有两...

Adam-Lee ⋅ 2011/08/10 ⋅ 1

php soap 实例

php soap编码转换 在给CHINAZ资讯(dedecms)做同步bbsmax passport登陆api时,因为bbsmax使用utf-8编码,而资讯这边用的是GBK编码,导致乱码。开始想自己转码,但有点麻烦。后面想SOAP既然用来...

zchd ⋅ 2013/04/01 ⋅ 0

使用 PHP 开发基于 Web 服务的应用程序

PHP SOAP 扩展 SOAP 的全称为简单对象访问协议 (Simple Object Access Protocol)。它是一种基于 XML 的,可扩展的通信协议。SOAP 提供了一种标准,使得运行在不同平台上并使用不同的编程语言...

邪恶的小Y ⋅ 2011/11/07 ⋅ 1

利用php soap实现web service

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

xinson ⋅ 2014/08/22 ⋅ 0

linux PHP 编译参数详解

Fast-CGI: ./configure --prefix=/usr/local/php --enable-fastcgi --enable-force-cgi-redirect --with-config-file-path=/etc --with-zlib --with-mysql --with-xml --with-gd --enable-gd......

Surjur ⋅ 2015/10/05 ⋅ 0

php源码编译参数详解

具体参数含义可以用./configure --help来查看。 列表如下(部分参数未得到解释): # 指定 PHP 安装目录 --prefix=/usr/local/php # 指定php.ini位置 --with-config-file-path=/usr/local/p...

小小子之家 ⋅ 2017/04/25 ⋅ 0

使用 Zend Framework 实现 SOAP 服务

引言 Web 服务最近非常流行,其中基于 REST 的服务吸引了大部分的关注。REST 之所以流行,是由于它简单、直接和能够处理现有 HTTP 方法。但是也要记住,REST 并不是唯一的方法:SOAP,即 Si...

kisshua ⋅ 2013/03/28 ⋅ 0

PHP5 SOAP调用原理及实现过程

本文以某公司iPhone 6手机预约接口开发为例,介绍PHP5下SOAP调用的实现过程。 一、基础概念 SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单...

cnu2m ⋅ 2014/10/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

BS与CS的联系与区别【简】

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或 SQL Server。客户端需要安装专用的客户端软件。 B/S是Brower/...

anlve ⋅ 52分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 今天 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部