php 调用webservice的几种方法

内容摘要
这篇文章主要为大家详细介绍了php 调用webservice的几种方法,具有一定的参考价值,可以用来参考一下。

对php调用webservice的几种方法对此感兴趣的朋友,看看idc笔记做的技术笔
文章正文

这篇文章主要为大家详细介绍了php 调用webservice的几种方法,具有一定的参考价值,可以用来参考一下。

对php调用webservice的几种方法对此感兴趣的朋友,看看idc笔记做的技术笔记!

/**
 * 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);
/***   来自php教程(www.idcnote.com)   ***/
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"),new SoapParam("bbb", "ns1:youName")),
array('soapaction'=>'http://tempuri.org/HelloWorld'));
print_r($result2); 
/***   来自php教程(www.idcnote.com)   ***/
2.2使用SoapVar传递参数

/**
 * php调用webservice的几种方法
 *
 * @param 
 * @arrange 512-笔记网: www.512Pic.com
 **/
$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);
/***   来自php教程(www.idcnote.com)   ***/
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', 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教程(www.idcnote.com)   ***/

注:关于php 调用webservice的几种方法的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!