webservice 之一 php SOAP
2016-07-24 18:48
585 查看
SoapClient类
这个类用来使用Web services。SoapClient类可以作为给定Web services的客户端。
它有两种操作形式:
WSDL 模式
Non-WSDL 模式
服务器端
include_once '../webservice/nusoap.php'; set_time_limit(0); //可传递给wishery的父分类 $cat_array = array('2408','2279','2079','1926','1922','1921','1923','2391','1927'); $server = new soap_server(); $server -> soap_defencoding = 'UTF-8'; $server -> decode_utf8 = false; $server -> xml_encoding = 'UTF-8'; $server -> configureWSDL( 'wishery_wsdl','' ); $server -> wsdl -> schemaTargetNamespace = 'urn:wishery_wsdl'; $server -> wsdl -> addComplexType( 'data_array','complexType','array','','SOAP-ENC:Array',array(), array( array( 'ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:data_array' ) ) ); $server -> register( 'get_globalegrow_sku', array( 'start'=>'xsd:int', 'limit'=>'xsd:int', 'sku'=>'xsd:string', 'identity' => 'xsd:string' ), array( 'code'=>'xsd:string', 'data'=>'tns:data_array', 'msg'=>'xsd:string' ), 'urn:wishery_wsdl', 'urn:wishery_wsdl#get_globalegrow_sku', 'rpc', 'encodeed', 'wishery Web Service Interface' ); function get_globalegrow_sku( $start = "0" ,$limit="200",$sku = "",$identity ){ global $db; if( $identity != IDENTITY ){ $data['code'] = '1000'; $data['msg'] = 'IDENTITY ERROR'; }else{ $cat_ids = rtrim(get_wishery_cats(),','); $rs = $db->arrQuery("select goods_name,goods_sn,goods_weight,goods_desc from eload_goods where cat_id in (".$cat_ids.") limit ".$start.",".$limit); foreach ($rs as $key => $value) { $rs[$key]['goods_desc'] = str_replace('http://ebay.davismicro.com.cn', '', $value['goods_desc']); $rs[$key]['goods_desc'] = htmlspecialchars($value['goods_desc']); } foreach ($rs as $key => $value) { $suggest = $db->arrQuery("select country,fixed_price from eload_goods_suggest_price where goods_sn='{$value['goods_sn']}' and fixed_price != ''"); if(count($suggest)>0){ $suggest_array = $suggest; }else{ $suggest_array = array(); } $rs[$key]['suggest'] = $suggest_array; } foreach ($rs as $key => $value) { $cdn_url = 'http://cdn.ovonni.com/'; $goods_id = $db -> getOne("select goods_id from eload_goods where goods_sn='{$value['goods_sn']}'"); $goods_gallery = $db->arrQuery("select img_original from eload_goods_gallery where goods_id =".$goods_id." and img_original != ''"); $gallery = array(); if(count($goods_gallery) > 0){ foreach ($goods_gallery as $key => $value) { $gallery['img_url'] = $cdn_url.$value['img_original']; } } $rs[$key]['img_gallery'] = $gallery; } $data['code'] = '0'; $data['data'] = $rs; } return $data; }
客户端访问
include_once '../webservice/nusoap.php'; //新建一个soap客户端,调用服务端提供的wsdl $url_2 = "http://192.168.3.4:85/api/wishery.php"; //测试地址 $client = new soapclient($url_1); //查看一下是不是报错 $err = $client->getError(); if ($err) { //显示错误 echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; } //要向服务端要传的参数 $person = array('start' => '0', 'limit' => '100', 'sku' => '', 'identity'=>'******************'); //调用服务端的方法 $result = $client->call('get_globalegrow_sku', $person); print_r($result);
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- rem : web app适配的秘密武器
- jquery高级应用之Deferred对象
- 关于浮动与清除浮动,你应该知道的
- 数组reduce方法的高级技巧
- php7 读取php.ini[4]
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站