php5中包含了使用webservice的拓展。
需要php.ini中的兩項配置:
extension=php_openssl.dll
extension=php_soap.dll
手冊中的說明在“SOAP Functions”部分。大致過程:
1.使用web service的訪問路徑new一個 SoapClient對象;
2.使用__getFunctions()和__getTypes()方法來進行測試;
3.設置headers;
4.進行方法調用。
有驗證機制的webservice,需要在header裏設置驗證信息。
設置headers部分:
ini_set("soap.wsdl_cache_enabled", "0");//soap緩存
$soap = new SoapClient('http://localhost/webservice1.asmx?WSDL');
try
{
$param = array('AppID'=>56,'AuthKey'=>'859615585078529CC0BF092C0CAE8BCF');
//說明:第一個參數是藉口中的namespace,第二個是藉口中header的名稱,第三個是驗證參數
$header = new SoapHeader('NAMESPACE' ,'MySoapHeader', $param);
$soap->__setSoapHeaders(array($header));//添加soapheader
$param2 = array('userName'=>'','pageSize'=>10,'pageNo'=>1);
$data = $soap->__call('GetUserList',array('parameters'=>$param2));//這種調用方法是不推薦,至少我這樣用是失敗的
$data = $soap->GetUserList(array('parameters'=>$param2));//直接使用方法名調用
print_r($data);
}
catch(Exception $e)
{
print_r($e);
}