php5中調用webservice

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);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章