麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

PHP5對webservice的實現

2020-03-24 19:20:03
字體:
來源:轉載
供稿:網友
來段企業級應用吧,主要是講PHP5對webservice的一些實現(以下的程序可以被JAVA,NET,C等正常調用)國內用PHP寫WebService的真的很少,網上資料也沒多少,公司的項目開發過程中,經歷了不少這方面的東西,寫出來以供大家參考(謝謝老農提供的WSDL和程序文件)客戶端 ?php
header ( Content-Type: text/html; charset=utf-8 );
/*
* 指定WebService路徑并初始化一個WebService客戶端
*/
$ws = http://soap/soapCspMessage.php?wsdl
$client = new SoapClient ( $ws, array ('trace' = 1, 'uri' = 'http://www.zxsv.com/SoapDiscovery/' ) );
/*
* 獲取SoapClient對象引用的服務所提供的所有方法
*/
echo ( SOAP服務器提供的開放函數:
echo (' pre
var_dump ( $client- __getFunctions () );
echo (' /pre
echo ( SOAP服務器提供的Type:
echo (' pre
var_dump ( $client- __getTypes () );
echo (' /pre
echo ( 執行GetGUIDNode的結果:
//$users = $client- GetUsers();
//var_dump($HelloWorld );
$parameters = array('uname'= 'zxsv', upassword = '123');
$out = $client- HelloWorld($parameters);
$datadb = $out- HelloWorldResponse;
var_dump($out);
? 服務端 ?php
class Member
{
public $UserId;
public $Name;
public function __construct($parmas){
$this- UserId = $parmas[0];
$this- Name = $parmas[1];
}
}
$servidorSoap = new SoapServer('testphp.xml',array('uri' = 'http://www.TestPHP.com/','encoding'= 'utf-8','soap_version' = SOAP_1_2 ));
$servidorSoap- setClass(Testphp);
$servidorSoap- handle();
class Testphp {
public function HelloWorld($uid){
return array('HelloWorldResult'= mystring .$uid- {'uname'}.' and '.$uid- {'upassword'});
}
public function GetMember($uid){
$s=array();
for($i=0;$i $uid- {'uid'};$i++){
$s[] = new Member(array($i, $uid- {'uname'}.'我測試'.$i));
}
return array('GetMemberResult'=
}
}
? 到這里應該都看的懂吧
下面是WSDL文件 ?xml version= 1.0 encoding= utf-8 ?
wsdl:definitions xmlns:soap= http://schemas.xmlsoap.org/wsdl/soap/ xmlns:tm= http://microsoft.com/wsdl/mime/textMatching/ xmlns:soapenc= http://schemas.xmlsoap.org/soap/encoding/ xmlns:mime= http://schemas.xmlsoap.org/wsdl/mime/ xmlns:tns= http://www.TestPHP.com/ xmlns:s= http://www.w3.org/2001/XMLSchema xmlns:soap12= http://schemas.xmlsoap.org/wsdl/soap12/ xmlns:http= http://schemas.xmlsoap.org/wsdl/http/ targetNamespace= http://www.TestPHP.com/ xmlns:wsdl= http://schemas.xmlsoap.org/wsdl/
wsdl:types
s:schema elementFormDefault= qualified targetNamespace= http://www.TestPHP.com/
s:element name= HelloWorld
s:complexType
s:sequence
s:element minOccurs= 0 maxOccurs= 1 name= uname type= s:string /
s:element minOccurs= 0 maxOccurs= 1 name= upassword type= s:string /
/s:sequence
/s:complexType
/s:element
s:element name= HelloWorldResponse
s:complexType
s:sequence
s:element minOccurs= 0 maxOccurs= 1 name= HelloWorldResult type= s:string /
/s:sequence
/s:complexType
/s:element
s:element name= GetMember
s:complexType
s:sequence
s:element minOccurs= 1 maxOccurs= 1 name= uid type= s:int /
s:element minOccurs= 0 maxOccurs= 1 name= uname type= s:string /
/s:sequence
/s:complexType
/s:element
s:element name= GetMemberResponse
s:complexType
s:sequence
s:element minOccurs= 0 maxOccurs= 1 name= GetMemberResult type= tns:ArrayOfMember /
/s:sequence
/s:complexType
/s:element
s:complexType name= ArrayOfMember
s:sequence
s:element minOccurs= 0 maxOccurs= unbounded name= Member nillable= true type= tns:Member /
/s:sequence
/s:complexType
s:complexType name= Member
s:sequence
s:element minOccurs= 1 maxOccurs= 1 name= UserId type= s:int /
s:element minOccurs= 0 maxOccurs= 1 name= Name type= s:string /
/s:sequence
/s:complexType
/s:schema
/wsdl:types
wsdl:message name= HelloWorldSoapIn
wsdl:part name= parameters element= tns:HelloWorld /
/wsdl:message
wsdl:message name= HelloWorldSoapOut
wsdl:part name= parameters element= tns:HelloWorldResponse /
/wsdl:message
wsdl:message name= GetMemberSoapIn
wsdl:part name= parameters element= tns:GetMember /
/wsdl:message
wsdl:message name= GetMemberSoapOut
wsdl:part name= parameters element= tns:GetMemberResponse /
/wsdl:message
wsdl:portType name= TestPHPSoap
wsdl:operation name= HelloWorld
wsdl:input message= tns:HelloWorldSoapIn /
wsdl:output message= tns:HelloWorldSoapOut /
/wsdl:operation
wsdl:operation name= GetMember
wsdl:input message= tns:GetMemberSoapIn /
wsdl:output message= tns:GetMemberSoapOut /
/wsdl:operation
/wsdl:portType
wsdl:binding name= TestPHPSoap type= tns:TestPHPSoap
soap:binding transport= http://schemas.xmlsoap.org/soap/http /
wsdl:operation name= HelloWorld
soap:operation soapAction= http://www.TestPHP.com/HelloWorld /
wsdl:input
soap:body use= literal /
/wsdl:input
wsdl:output
soap:body use= literal /
/wsdl:output
/wsdl:operation
wsdl:operation name= GetMember
soap:operation soapAction= http://www.TestPHP.com/GetMember /
wsdl:input
soap:body use= literal /
/wsdl:input
wsdl:output
soap:body use= literal /
/wsdl:output
/wsdl:operation
/wsdl:binding
wsdl:binding name= TestPHPSoap12 type= tns:TestPHPSoap
soap12:binding transport= http://schemas.xmlsoap.org/soap/http /
wsdl:operation name= HelloWorld
soap12:operation soapAction= http://www.TestPHP.com/HelloWorld /
wsdl:input
soap12:body use= literal /
/wsdl:input
wsdl:output
soap12:body use= literal /
/wsdl:output
/wsdl:operation
wsdl:operation name= GetMember
soap12:operation soapAction= http://www.TestPHP.com/GetMember /
wsdl:input
soap12:body use= literal /
/wsdl:input
wsdl:output
soap12:body use= literal /
/wsdl:output
/wsdl:operation
/wsdl:binding
wsdl:service name= TestPHP
wsdl:port name= TestPHPSoap binding= tns:TestPHPSoap
soap:address location= http://soap/goodwsdl/testphp.php /
/wsdl:port
wsdl:port name= TestPHPSoap12 binding= tns:TestPHPSoap12
soap12:address location= http://soap/goodwsdl/testphp.php /
/wsdl:port
/wsdl:service
/wsdl:definitions 這里有返回的兩個字段,一個是返回字符串,這個很好理解 s:element name= HelloWorld
s:complexType
s:sequence
s:element minOccurs= 0 maxOccurs= 1 name= uname type= s:string /
s:element minOccurs= 0 maxOccurs= 1 name= upassword type= s:string /
/s:sequence
/s:complexType
/s:element
s:element name= HelloWorldResponse
s:complexType
s:sequence
s:element minOccurs= 0 maxOccurs= 1 name= HelloWorldResult type= s:string /
/s:sequence
/s:complexType
/s:element 這一段就字符串的
那返回數組的就比較麻煩了,我和老農搞了一兩周才發現是WSDL文件寫錯了,看下面的一段 s:element name= GetMember
s:complexType
s:sequence
s:element minOccurs= 1 maxOccurs= 1 name= uid type= s:int /
s:element minOccurs= 0 maxOccurs= 1 name= uname type= s:string /
/s:sequence
/s:complexType
/s:element
s:element name= GetMemberResponse
s:complexType
s:sequence
s:element minOccurs= 0 maxOccurs= 1 name= GetMemberResult type= tns:ArrayOfMember /
/s:sequence
/s:complexType
/s:element
s:complexType name= ArrayOfMember
s:sequence
s:element minOccurs= 0 maxOccurs= unbounded name= Member nillable= true type= tns:Member /
/s:sequence
/s:complexType
s:complexType name= Member
s:sequence
s:element minOccurs= 1 maxOccurs= 1 name= UserId type= s:int /
s:element minOccurs= 0 maxOccurs= 1 name= Name type= s:string /
/s:sequence
/s:complexType 第一段GetMember是輸入,最重要的是GetMemberResponse這段,看type= tns:ArrayOfMember 這里,返回一個數組,WSDL中定義了ArrayOf這個,后面的就簡單了,ArrayOfMember的類型是type= tns:Member ,從name= Member 得到要返回的數組,完工。html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费a级作爱片免费观看欧洲 | 成人福利在线看 | 欧美a在线观看 | 斗破苍穹在线观看免费完整观看 | 国产精品欧美久久久久一区二区 | 91九色网 | 久久黄色影院 | 中文字幕免费一区 | 精品国产91久久久久 | 国产免费传媒av片在线 | 99影视电影电视剧在线播放 | 欧美精品激情视频 | 九一国产精品 | 欧美日韩在线视频一区 | 国产精品av久久久久久久久久 | 国产精品久久久久久久久久久久久久久 | 欧美亚洲免费 | 免费久久久久 | 久久久久久三区 | 成品片a免人视频 | 综合网天天射 | 色综合久久久久久久粉嫩 | 丁香天堂网 | 视频一区二区视频 | 日本在线国产 | 美女亚洲综合 | 7777视频 | 主播粉嫩国产在线精品 | 成年人视频在线免费播放 | 欧美成人一级片 | 国语自产免费精品视频在 | 一区二区免费网站 | 精品国产乱码一区二区 | 色视频在线播放 | 色淫视频| 中文字幕国 | 国产男人的天堂 | 成人在线视频免费看 | 本色视频aaaaaa一级网站 | 久久精国 | 欧美精品成人一区二区在线观看 |