十年網站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網站問題一站解決
php調用web service還是非常簡單的。下面用一個例子說明:
創(chuàng)新互聯(lián)建站是專業(yè)的囊謙網站建設公司,囊謙接單;提供網站設計制作、網站制作,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行囊謙網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
web service服務是查詢QQ用戶是否在線
使用php5開發(fā)客戶端:
?php
try {
//$client = new SoapClient("HelloService.wsdl",array('encoding'='UTF-8'));
$client = new SoapClient("webservices/qqOnlineWebService.asmx?wsdl");
var_dump($client-__getFunctions());
print("");
var_dump($client-__getTypes());
print("");
class qqCheckOnline{
var $qqCode = "10000";
};
$arrPara = array(new qqCheckOnline);
$arrResult = $client-__Call("qqCheckOnline",$arrPara);//$client-qqCheckOnline($arrPara);
echo $arrResult-qqCheckOnlineResult . "";
} catch (SOAPFault $e) {
print $e;
}
?
代碼確實很簡單吧,創(chuàng)建SoapClient對象時,可以使用保存在本地WSDL文件,也可以使用遠程的地址,后面的array數組里可以帶上很多的參數,具體參數可以查php的SoapClient幫助,這里帶的是字符集編碼,如果調用方法的參數里有中文,一定要指定字符集編碼,否則會出錯。
調
用web service前可以先調用SoapClient的__geunctions()和__getTypes()方法看一下你要調用的
web service暴露的方法,參數和數據類型,需要注意的是傳入的參數名一定要和soapclient里面定義的一致,否則參數是傳不過去的。
需要使用SoapClient的__soapCall()或__call()方法,具體使用方法可以查php的幫助文檔。如果參數要求是一個結構體,請用類代替,如上面的代碼。
另外發(fā)現個問題,如果web service方法返回的是xml格式的字符串,php接收到以后會自己把數據內容解析出來,而不是xml字符串.
第一個字母表示類型 count表示ID數量 / 隔開 ild,ild,ild來記錄數據(我是按照你的意思來)
比方
i5/1,2,3,4,5
類型為int 一共5個 分別1,2,3,4,5
其實有必要么。。。直接i:1,2,3,4,5不就行了
不一樣的話這樣寫 i:1,2,3|s:4,5,6
懂了嗎?
接口的流程.
建立控制器(訪問地址)-審核訪問者身份(token)-驗證提交數據是否符合類型(validate
)-處理接收數據(邏輯流程)-返回結果(json字符串).
其中要注意是否存在跨域,如果跨域要做跨域處理,例如返回jsonp.