a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > PHP > 正文

PHP5對webservice的實現(xiàn)

2020-03-24 19:20:03
字體:
供稿:網(wǎng)友
來段企業(yè)級應(yīng)用吧,主要是講PHP5對webservice的一些實現(xiàn)(以下的程序可以被JAVA,NET,C等正常調(diào)用)國內(nèi)用PHP寫WebService的真的很少,網(wǎng)上資料也沒多少,公司的項目開發(fā)過程中,經(jīng)歷了不少這方面的東西,寫出來以供大家參考(謝謝老農(nóng)提供的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對象引用的服務(wù)所提供的所有方法
*/
echo ( SOAP服務(wù)器提供的開放函數(shù):
echo (' pre
var_dump ( $client- __getFunctions () );
echo (' /pre
echo ( SOAP服務(wù)器提供的Type:
echo (' pre
var_dump ( $client- __getTypes () );
echo (' /pre
echo ( 執(zhí)行GetGUIDNode的結(jié)果:
//$users = $client- GetUsers();
//var_dump($HelloWorld );
$parameters = array('uname'= 'zxsv', upassword = '123');
$out = $client- HelloWorld($parameters);
$datadb = $out- HelloWorldResponse;
var_dump($out);
? 服務(wù)端 ?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'=
}
}
? 到這里應(yīng)該都看的懂吧
下面是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 這一段就字符串的
那返回數(shù)組的就比較麻煩了,我和老農(nóng)搞了一兩周才發(fā)現(xiàn)是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 這里,返回一個數(shù)組,WSDL中定義了ArrayOf這個,后面的就簡單了,ArrayOfMember的類型是type= tns:Member ,從name= Member 得到要返回的數(shù)組,完工。html教程

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩大片一区 | 91久久综合亚洲鲁鲁五月天 | 少妇一区二区三区 | 日韩中文视频 | 亚洲免费网| 久草99| 久久久蜜桃 | 国产精品美女久久 | 人人爽人人做 | 激情久久久 | 免费a在线看| 精品久久久久久久久久久久 | 涩涩视频在线 | 一区二区三区观看视频 | 福利视频一区 | 国产精品入口麻豆www | 国产精品99 | 日本精品视频在线观看 | 成人日韩| 一级a性色生活片久久毛片波多野 | 国产色播av在线 | 久久在线播放 | 色涩色 | 成人在线播放网站 | 四虎首页 | 一级毛片在线播放 | 久久久av| 欧美区国产区 | 美女黄网 | 巨大黑人极品videos精品 | 欧美福利一区 | 国产午夜精品一区二区三区 | 在线污污 | 中文字幕综合在线分类 | 中文字幕精品一区二区三区精品 | 日韩天堂 | 精品在线看 | 91丝袜 | 日韩在线观看视频免费 | 综合网激情五月 | 在线a视频 |