使用PHP内置SOAP要点分析

开发 后端
PHP内置SOAP虽然已经不是非常流行了,但是某些程序员在处理代码编程的时候,还会偶尔的用上。我们今天就来向大家详细介绍有关PHP内置SOAP的用法。

对于刚刚接触PHP语言的新手来说,对于PHP内置SOAP可能还是了解的不太多。PHP内置SOAP已经是属于OUT范畴的技术了,不过因为历史原因,时不时还是会用到它,以前都是用NuSOAP,现在准备试试PHP内置的SOAP扩展。#t#

由于文本只打算说说客户端的用法,所以得先找一些能直接用的服务端,Xmethods提供了一些有趣的选择,这里选择其中的Map IP Address to Country服务,功能很简单,就是提供一个IP地址,然后返回国家名称。

先创建一个client实例:

 

$client = new SoapClient
(’http://www.ecubicle.net/
iptocountry.asmx?wsdl’, 
array(’trace’ =
> true)); 

通过设置trace为true,我们可以在稍后使用__getLastRequest,__getLastRequestHeaders,__getLastResponse,__getLastResponseHeaders等方法得到一些信息,在程序调试阶段,这些信息很有用,程序投入使用时,则不必使用此参数。除了trace参数,还可以设定login和password参数以实现HTTP认证的功能,此外还有很多参数,可以参考官方文档。

创建了前面的$client实例后,我们可以先看看服务都提供了哪些方法:

print_r($client->__getFunctions());

服务方法的信息细节可以从wsdl里自己查阅,下面看看PHP内置SOAP怎么调用一个实际的方法,$ip=’64.156.132.140′:

 

  1. $result = $client->__soapCall
    (’FindCountryAsString’, array
    (’FindCountryAsString’ =
    > 
    array(’V4IPAddress’ =
    > $ip)));  
  2. print_r($result->
    FindCountryAsStringResult); 

还可以这样调用:

 

  1. $result = $client->
    FindCountryAsString(array
    (’V4IPAddress’ =
    > $ip));  
  2. print_r($result->
    FindCountryAsStringResult); 

PHP内置SOAP还可以这样调用:

 

  1. $params = new SoapParam(array(’V4IPAddress’ 
    =
    > $ip), ‘FindCountryAsStringSoapIn’);  
  2. $result = $client->__soapCall
    (’FindCountryAsString’, array($params));  
  3. print_r($result->FindCountryAsStringResult); 

还可以这样调用:

 

  1. $params = new SoapParam(array(’V4IPAddress’ 
    =
    > $ip), ‘FindCountryAsStringSoapIn’);  
  2. $result = $client->FindCountryAsString($params);  
  3. print_r($result->FindCountryAsStringResult); 

在使用PHP内置SOAP时,参数如何传递有点不好说明,这需要研读wsdl描述文档,不过看wsdl实在是一件无趣的事情,所以我觉得你可以先大概看一下wsdl,然后凭感觉去尝试传递参数,其中配合trace调试,一般来说,试几次就能找到正确的传递方式,如果还不行,再通过__getLastRequest,__getLastRequestHeaders等方法提供的信息配合wsdl描述文档仔细研究。

责任编辑:曹凯 来源: helpphp.cn
相关推荐

2009-12-02 13:53:12

PHP使用技巧

2009-12-11 15:28:02

PHP安全防护

2010-09-10 14:48:05

2010-09-10 15:04:40

SOAP HTTP

2009-11-17 09:17:49

PHP多维数组排序

2015-09-21 11:45:10

PHP编程效率要点

2012-09-19 09:47:58

PHPWeb服务器

2009-12-10 13:43:08

使用PHPExcel

2019-09-28 22:55:17

2010-01-04 16:38:07

企业级Silverli

2009-12-04 09:50:59

PHP ob_star

2014-07-23 10:03:20

2010-09-02 16:39:30

SOAP协议

2011-08-30 16:31:23

UbuntuXdebug

2009-11-24 18:23:26

PHP函数array_

2009-12-08 18:02:06

PHP final关键

2010-07-30 15:11:41

无线路由使用

2010-03-16 14:32:16

Visual Stud

2009-02-17 09:50:25

2009-11-16 15:56:46

PHP数组查询
点赞
收藏

51CTO技术栈公众号