最近看了挺多關於php中webservice的資料,感謝燕十八的分享,協助了我構建服務端的過程。將學習筆記記錄如下,其中包含燕十八的筆記。
WebService
1 快速瞭解WebService
通俗的說:按一定的XML格式,調用遠程伺服器的方法,且伺服器按一定的格式返回XML內容.
"一定的格式"----SOAP(Simple Object Access Protocol )簡易物件存取通訊協定 (SOAP)是在分散或分布式的環境中交換資訊的簡單的協議,是一個基於XML的協
議.
遠程伺服器 ---- 一般通過HTTP協議來傳遞訊息
總結: WebServie == HTTP協議 + Soap格式的XML
例1:soap請求
POST /WebServices/MobileCodeWS.asmx HTTP/1.1
Host: webservice.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: 354
SOAPAction: "http://WebXml.com.cn/getMobileCodeInfo"
並重啟apache
PHP SoapClient類可以用來請求WebService
$soap = new soapClient('http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?WSDL');print_r($soap->getMobileCodeInfo( array('mobileCode'=>'13**********') ) );
Array([0] => getMobileCodeInfoResponse getMobileCodeInfo(getMobileCodeInfo $parameters)[1] => getDatabaseInfoResponse getDatabaseInfo(getDatabaseInfo $parameters))Array([0] => struct getMobileCodeInfo {string mobileCode;string userID;}[1] => struct getMobileCodeInfoResponse {string getMobileCodeInfoResult;}[2] => struct getDatabaseInfo {}[3] => struct getDatabaseInfoResponse {ArrayOfString getDatabaseInfoResult;}[4] => struct ArrayOfString {
string string;
}
// 調用方法print_r($soap->getMobileCodeInfo( array('mobileCode'=>'13426060134') ) );
返回結果
stdClass Object ( [getMobileCodeInfoResult] => 13*********:北京 北京 北京移動動感地帶卡 )
3 搭建WebService伺服器
wsdl是什麼?
wsdl是WebService的規格說明書.
'1.0' encoding ='UTF-8' ?>'自訂名稱[可選]'targetNamespace='命名空間[一般為URL]'xmlns:tns='命名空間[值同targetNamespace]'xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'xmlns:xsd='http://www.w3.org/2001/XMLSchema'xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'xmlns='http://schemas.xmlsoap.org/wsdl/'>"http://www.w3.org/2001/XMLSchema"targetNamespace="[值同上tns]">'操作名Request'>"term" type="xsd:string"/>'操作名Response'>"value" type="xsd:string"/>'巨集指令清單名'>'操作名'>'tns:操作名Request'/>'tns:操作名Response'/>'WS下的頻道名稱' type='tns:頻道下的巨集指令清單'>'rpc'transport='http://schemas.xmlsoap.org/soap/http'/>'test'>'http://www.cwtservice.cn/newOperation/'/>'encoded' namespace='urn:xmethods-delayed-quotes'encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>'encoded' namespace='urn:xmethods-delayed-quotes'encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>'WebService名稱[如weatherWS,shopWS]'>'WS下的頻道名稱[如cartSoap,購物車服務]' binding='tns:[頻道名,同左]'>'http://[webservice地址]'/>
以上就介紹了WebService-php- 1(16),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。