加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php 调用webservice的几种方法

发布时间:2020-05-25 05:58:05 所属栏目:PHP 来源:互联网
导读:php 调用webservice的几种方法

对php调用webservice的几种方法感兴趣的小伙伴,下面一起跟随脚本之家 jb51.cc的小编两巴掌来看看吧!


/**
 * php调用webservice的几种方法
 *
 * @param 
 * @arrange 512-笔记网: www.512Pic.com
 **/
$soap = new SoapClient("http://192.168.6.69:8899/Service1.asmx?wsdl");
$result2 = $soap->HelloWorld(array(
'myName'=>'aaa','youName'=>'bbb'
));
print_r($result2);
/***   来自脚本之家 jb51.cc(jb51.cc)   ***/
2.non-WSDL模式:
2.1使用SoapParam传递参数:

/**
 * php调用webservice的几种方法
 *
 * @param 
 * @arrange 512-笔记网: www.512Pic.com
 **/
$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"),"ns1:youName")),array('soapaction'=>'http://tempuri.org/HelloWorld'));
print_r($result2); 
/***   来自脚本之家 jb51.cc(jb51.cc)   ***/
2.2使用SoapVar传递参数

/**
 * php调用webservice的几种方法
 *
 * @param 
 * @arrange 512-笔记网: www.512Pic.com
 **/
$ns = 'http://tempuri.org/';
$soap = new SoapClient(null,'uri'=>$ns));
$result2 = $soap->__soapCall("HelloWorld",array(new SoapVar("AAA",XSD_STRING,null,$ns,"myName",$ns),new SoapVar("GBBB","youName",$ns)),array('soapaction'=>'http://tempuri.org/HelloWorld'));
print_r($result2);
/***   来自脚本之家 jb51.cc(jb51.cc)   ***/
3.添加安全Header

/**
 * php调用webservice的几种方法
 *
 * @param 
 * @arrange 512-笔记网: www.512Pic.com
 **/
$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',NULL,$ns_wsse,$ns_wsse);
$passwT = new SoapVar('NnYZe7oD81Kd8QRS4tUMze/2CUs=',$ns_wsse);
$createdT = new SoapVar(time(),XSD_DATETIME,$ns_wsu,$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,'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,$ns_wsse);
$secHeaderValue=new SoapVar($userToken,'Security',$ns_wsse);
$secHeader = new SoapHeader($ns_wsse,$secHeaderValue);
$result2 = $soap->__soapCall("GetDeviceInformation",array(),$secHeader);
echo $result2;
/***   来自脚本之家 jb51.cc(jb51.cc)   ***/

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读