當前位置:編程學習大全網 - 源碼下載 - php每次連接webservice都需要新的SoapClient()嗎?

php每次連接webservice都需要新的SoapClient()嗎?

最近需要用php調用web服務接口。對php不熟悉,上網搜了壹下。發現用php調用web服務的文章不多。很多都是用php4中的nusoap模塊調用的。事實上,php5已經包含了壹個處理soap的模塊,但是信息太少了。我在php官網上查幫助也不容易理解。經過多次實踐,我終於發現用php調用web服務非常簡單。這裏有壹個例子:

Web service服務是查詢QQ用戶是否在線。

使用php5開發客戶端:

& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)

嘗試{

//$ client = new soap client(" hello service . wsdl ",array(' encoding ' = & gt;UTF-8’));

$ client = new soap client(" web services/qqonline web service . asmx?wsdl”);

var _ dump($ client-& gt;_ _ get functions());

打印(" ");

var _ dump($ client-& gt;_ _ getTypes());

打印(" ");

class qqCheckOnline{

var $ QQ code = " 10000 ";

};

$arrPara = array(新的QQ check online);

$ arr result = $ client-& gt;__Call("qqCheckOnline ",$ arrPara);//$ client-& gt;QQ check online($ arrPara);

echo $ arr result-& gt;qqCheckOnlineResult。"";

} catch (SOAPFault $e) {

打印$ e;

}

& gt

代碼真的很簡單,不是嗎?創建SoapClient對象時,可以使用保存在本地或遠程地址的WSDL文件,其背後的數組array可以帶很多參數。具體參數請參考php的SoapClient幫助,這裏是字符集編碼。如果調用方法的參數中有中文,必須指定字符集編碼,否則會出錯。

在調用web服務之前,可以調用SoapClient的__geunctions()和__getTypes()方法,查看要調用的web服務所公開的方法、參數和數據類型。需要註意的是,傳入的參數名必須與soapclient中定義的壹致,否則無法傳遞參數。

需要使用SoapClient的__soapCall()或__call()方法,具體使用方法可以查看php的幫助文檔。如果參數需要壹個結構,請使用壹個類來代替,如上面的代碼所示。

又發現壹個問題。如果web服務方法返回xml格式的字符串,php將在收到數據後自己解析數據,而不是xml字符串。

  • 上一篇:html5拖拽圖片上傳,怎麽獲得圖片原始尺寸
  • 下一篇:混凝土要多久才能達到強度
  • copyright 2024編程學習大全網