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://tempuri.org/'));
- $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://tempuri.org/HelloWorld'));
- print_r($result2);
2.2使用SoapVar传递参数
- $ns = 'http://tempuri.org/';
- $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://tempuri.org/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;
php调用webservice的几种方法的更多相关文章
- C#调用webService的几种方法
转自: WebClient 用法小结 http://www.cnblogs.com/hfliyi/archive/2012/08/21/2649892.html http://www.cnblogs. ...
- 通用的调用WebService的两种方法。(调用别人提供的wsdl)(转)
转载自:http://blog.sina.com.cn/s/blog_65933e020101incz.html1.调用WebService的Client端采用jax-ws调用WebService:流 ...
- Jquery调用webService的四种方法
1.编写4种WebService方法 [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(Conf ...
- Jquery调用webService的四种方法 转载-记录
我总结几个关键点 1. 服务必须声明为ScriptService(否则会出现下面的问题) 2.服务的方法不需要任何更改,保持原状 3.客户端用jquery的.ajax方法来调用 3.1 type必须是 ...
- asp.net远程调用WebService的两种方法(转载)
一,静态方法在“解决方案‘项目名’” -> 相应的文件夹,如“Web References” ->右键“添加WEB引用”->在URL里写入地址.二,动态方法在“解决方案‘项目名’” ...
- java调用webservice接口 几种方法
webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...
- [转]Delphi调用cmd的两种方法
delphi调用cmd的两种方法vars:string;begins:='cmd.exe /c '+edit1.Text+' >c:\1.txt';winexec(pchar(s),sw_hid ...
- C++调用DLL有两种方法——静态调用和动态调用
C++调用DLL有两种方法——静态调用和动态调用 标签: dllc++winapinullc 2011-09-09 09:49 11609人阅读 评论(0) 收藏 举报 分类: cpp(30) [ ...
- C# 调用WebService的3种方式 :直接调用、根据wsdl生成webservice的.cs文件及生成dll调用、动态调用
1.直接调用 已知webservice路径,则可以直接 添加服务引用--高级--添加web引用 直接输入webservice URL.这个比较常见也很简单 即有完整的webservice文件目录如下图 ...
随机推荐
- 10招让你成为杰出的Java程序员(转)
如果你是一个热衷于技术的 Java 程序员, 那么下面的 10 个要点可以让你在众多 Java 开发人员中脱颖而出. 1. 拥有扎实的基础和深刻理解 OO 原则 对于 Java 程序员,深刻理解 Ob ...
- Effective C++ -- 构造析构赋值运算
05.了解C++默默编写并调用哪些函数 编译产生的析构函数时non-virtual,除非这个类的基类析构函数为virtual 成员变量中有引用和const成员时,无法自己主动生成copy assign ...
- 【Java 它 JVM】对象的创建过程
虚拟机会new 指令: 1.检查指令的参数可在对类的符号引用的恒定饮食定位,并检查是否已装上代表这个类的符号引用.分析和初始化.假设没有.您必须运行相应的类加载过程. 2.类加载通过审查,虚拟机将分配 ...
- Photon + Unity3D 在线游戏开发 学习笔记(两)
本文和大家 和大家说说 Photon 解压后的目录结构 这里面最基本的我们 以后开发要用到的目录 就是 deploy目录,这个目录里 放的是要挂载的 server 当然我们的 server端也要放在 ...
- SlidingMenu开源项目滑动界面的实现总结
先上图 须要准备的是先得在GitHub上下载ActionBarSherlock-master.zip,和SlidingMenu-master.zip这两个开源文件,然后解压这两个包,SlidingMe ...
- ajax基本概念,方法
ajax Asynchronous javascript and xml异步的 javascript and XMLajax 是一门在不刷新网页的情况下,与服务器进行交互更新部分网页的技术: 传 ...
- Android HAL
- Mina框架断包、粘包问题解决方式
Mina框架断包.粘包问题解决方式 Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP.UDP/IP协议栈的通信框架(当然.也能够提供JAVA 对象的序 ...
- Unity3D中的Update, FixedUpdate, LateUpdate的区别
MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用. MonoBehaviour.FixedUpdate 固定更新 当MonoBehavi ...
- WPF换肤之八:创建3D浏览效果
原文:WPF换肤之八:创建3D浏览效果 上节中,我们展示了WPF中的异步以及界面线程交互的方式,使得应用程序的显示更加的流畅.这节我们主要讲解如何设计一个具有3D浏览效果的天气信息浏览器. 效果显示 ...