您好,登錄后才能下訂單哦!
CentOS SOAP擴展模塊觸發Service端執行相應的操作是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
從PHP5開始內置CentOS SOAP擴展模塊,通過它,我們可以方便的向Service發送一個CentOS SOAP消息,從而觸發Service端執行相應的操作,并將結果返回;
首先,要確保安裝了CentOS SOAP擴展,沒有安裝的表現是,當運行使用了soapclient的代碼時候會有php error Class ‘SoapClient’ not found的錯誤;這時候應該安裝php-soap,在CentOS SOAP上可以方便的使用yum更新安裝包>yum install php-soap更新過這些安裝包后,需要重新啟動一下apache服務,此后SoapClient類就可以用在php script中了下邊是使用過程中的一個范例:
<?php $client = new SoapClient("some.wsdl"); $client->SomeFunction($a, $b, $c); $arr= $client->__soapCall("SomeFunction", array($a, $b, $c)); print_r($arr); ?>
1.in WSDL mode,soapCall應用web service,例子用的是asp.net的web service,提供service.asmx頁面,調用及查看都比較簡單,手冊上的example也大多是這個類型,比較簡單
CentOS SOAP發送的協議:
POST /servicepath/service.asmx HTTP/1.1 Host: 211.186.1.4 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://211.186.5.15/Service/ServiceMethod"
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ServiceMethod xmlns="http://211.186.5.15/Service"> <param1>string</param1> <param2>string</param2> <param3>string</param3> </ServiceMethod> </soap:Body> </soap:Envelope>
調用方法:
$client = new SoapClient("http://www.xxx.com/service/service.asmx?WSDL"); //向SOAP服務方發送參數值 $param1 = "p1"; $param2 = "p2"; $param3 = "p3";
//serviceParam1,serviceParam2,serviceParam3為發送參數值所對應的參數名(或service端提供的字段名) $param = array('serviceParam1' => $param1,'serviceParam2' => $param2,'serviceParam3' => $param3);
//方法名為ServiceMethod,參數數組為$param,默認以parameters字段標示傳遞的參數數組 $arr = $client->__soapCall('ServiceMethod',array('parameters' => $param)); print_r($arr);
此處,print_r($arr)打印出來的是一個對象,類似于
stdClass Object ( [BindValidateResult] => 01062947546 )
經過我多次的嘗試,發現使用$arr[1],$arr[0],$arr[BindValidateResult]均不能取得有效值;后來查詢到通過$arr->BindValidateResult可以訪問到返回值;
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。