soap协议这个古老的通过wsdl文件通讯的协议,使用极其不方便,但是还有一些顽固的国企在使用,没办法,有一些需求必须跟他们对接接口,怎么办呢,在使用soap协议调用时候,php在这方面资料很少,很容易用错。
目前在PHP业界有两种使用方法:
一、使用soap扩展调用
二、引入lib/nusoap.php库,来操作
今天我重点来介绍的是第一种使用办法,第二种已经落后于时代了,不建议使用。
特别注意:
php里面还有nowsdl的调用方式,不建议使用,原因:使用nowsdl过程发现只有php业务能正常通讯,其他语言调用服务无法正常使用,不能跨语言。
我今天给大家介绍的是通过wsdl文件生成的soap服务,wsdl文件怎么生成可以使用zend工具。
具体来看代码:
command.php就是soap的服务端
client.php 是客户端
command.wsdl文件
command.php
client.php
header(‘Content-Type: text/xml; charset=UTF-8’);
$client = new \SoapClient(
‘#39;,
[‘encoding’ => ‘utf-8’, ‘cache_wsdl’ => 0, ‘compression’ => true]
);
try {
$param =[‘enterpriseId’ => 2,’randVal’ => ‘111’];
//这里一定要加上 parameters
$result = $client->__soapCall(“command”, [‘parameters’ => $param]);
} catch ( Exception $e) {
echo $e-> getMessage ();exit;
}
echo $result->return;
command.wsdl文件
SoapDiscovery.class.php 下载这个类库去生成 或者 用zend生成
require_once('command.php');
define('WSDL_FILE','command.wsdl');
if(!file_exists(WSDL_FILE)){
require_once('SoapDiscovery.class.php');
$sd = new SoapDiscovery('WebService', 'command');
$str = $sd->getWSDL();
file_put_contents(WSDL_FILE, $str);
}
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~