php调用webservice的几种方法
1.WSDL模式:
$soap = new SoapClient("http://192.168.6.69:8899/Service1.asmx?wsdl"); $result2 = $soap->HelloWorld(array( 'myName'=>'aaa', 'youName'=>'bbb' )); print_r($result2);
2.non-WSDL模式:
2.1使用SoapParam传递参数:
$soap = new SoapClient(null,array('location'=>'http://192.168.6.72:8036/Service1.asmx','uri'=>'http://phpabc.cn/')); $result2 = $soap->__soapCall("HelloWorld", array(new SoapParam("aaa", "myName"),new SoapParam("bbb", "youName")), //array(new SoapParam("aaa", "ns1:myName"),new SoapParam("bbb", "ns1:youName")), array('soapaction'=>'http://phpabc.cn/HelloWorld')); print_r($result2);
2.2使用SoapVar传递参数
$ns = 'http://www.wdphp.com/'; $soap = new SoapClient(null,array('location'=>'http://192.168.6.72:8036/Service1.asmx','uri'=>$ns)); $result2 = $soap->__soapCall("HelloWorld", array(new SoapVar("AAA", XSD_STRING, null, $ns, "myName", $ns), new SoapVar("GBBB", XSD_STRING, null, $ns, "youName", $ns)), array('soapaction'=>'http://phpabc.cn/HelloWorld')); print_r($result2);
3.添加安全Header
$soap = new SoapClient(null,array('location'=>'http://192.168.6.47/onvif/device_service','uri'=>'http://www.onvif.org/ver10/device/wsdl/')); //ws $ns_wsse = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";//WS-Security namespace $ns_wsu = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";//WS-Security namespace $userT = new SoapVar('admin', XSD_STRING, NULL, $ns_wsse, NULL, $ns_wsse); $passwT = new SoapVar('NnYZe7oD81Kd8QRS4tUMze/2CUs=', XSD_STRING, NULL, $ns_wsse, NULL, $ns_wsse); $createdT = new SoapVar(time(), XSD_DATETIME, NULL, $ns_wsu, NULL, $ns_wsu); class UsernameT1 { private $Username; //Name must be identical to corresponding XML tag in SOAP header private $Password; // Name must be identical to corresponding XML tag in SOAP header private $Created; function __construct($username, $password, $created) { $this->Username=$username; $this->Password=$password; $this->Created=$created; } } $tmp = new UsernameT1($userT, $passwT, $createdT); $uuT = new SoapVar($tmp, SOAP_ENC_OBJECT, NULL, $ns_wsse, 'UsernameToken', $ns_wsse); class UserNameT2 { private $UsernameToken; //Name must be identical to corresponding XML tag in SOAP header function __construct ($innerVal){ $this->UsernameToken = $innerVal; } } $tmp = new UsernameT2($uuT); $userToken = new SoapVar($tmp, SOAP_ENC_OBJECT, NULL, $ns_wsse, 'UsernameToken', $ns_wsse); $secHeaderValue=new SoapVar($userToken, SOAP_ENC_OBJECT, NULL, $ns_wsse, 'Security', $ns_wsse); $secHeader = new SoapHeader($ns_wsse, 'Security', $secHeaderValue); $result2 = $soap->__soapCall("GetDeviceInformation",array(),null,$secHeader); echo $result2;
相关热词: phpwebservice
相关内容
这些是最新的
热门排行
- THINKPHP5+GatewayWorker+Workerman 开发在线客服系统
- 在手机浏览器网页中点击链接跳转到微信界面的方法
- 尊云网站目录系统 ThinkPHP5网站分类目录程序 v2.2.221011
- CentOS 7安装shadowsock(一键安装脚本)
- AdminTemplate 基于LayUI 2.4.5实现的网站后台管理模板
- 用NW.js(node-webkit)开发多平台的桌面客户端
- PHP生成随机昵称/用户名
- THINKPHP5网站分类目录程序 尊云网站目录系统
- 织梦(DEDECMS)微信支付接口 微信插件
- 基于LayUI开发的 网站后台管理模板 BeginnerAdmin
- 响应式后台网站模板 - AMA.ADMIN
- layuiAdmin后台管理模板 Iframe版
- LayUI 1.0.9 升级 至 LayUI 2.1.4 方法
- 简洁清爽的会员中心模板
- jQuery幸运大转盘抽奖活动代码