用PHP可以实现基本的WebService功能,本文给出了用PHP编写WebService、用PHP编写代码调用WebService以及用Delphi调用WebService的示例代码。
编写WebService服务器端文件:soapserver.php
<?php require_once ´nusoap.php´; $soap = new soap_server; $soap->configureWSDL(´WSDataFix´, ´http://www.shangsi.com.cn/´); //$soap->wsdl->schemaTargetNamespace = ´http://soapinterop.org/xsd/´; $soap->register(´add´, array(´a´ => ´xsd:int´, ´b´ => ´xsd:int´), array(´c´ => ´xsd:int´, ´d´ => ´xsd:int´), ´http://www.shangsi.com.cn/´ ); $soap->service(isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ´´); function add($a, $b, $c, $d) { $c = $a * $b; $d = $a + $b; return array(´c´ => $c, ´d´ => $d); } ?>
编写WebService客户端调用:
<? include(´nusoap.php´); $client1 = new soapclient(´http://yourserver/nusoap_server3.php´); $n1 = 465; $n2 = 14; $params2 = array(´a´=>$n1, ´b´=>$n2); $ccc = $client1->call(´add´, $params2); print_r($ccc); ?>
Delphi调用代码:
var s,s1:widestring; i,j,k,l,m,n:integer; ss:AOS; begin HTTPRIO := THTTPRIO.Create(self); HTTPRIO.WSDLLocation := ´http://www.shangsi.com.cn/ascdl/nusoap_server3.php?wsdl´; i := 465; j := 14; k := 2; l := 3; s1 := ´This string will be reversed´; (HTTPRIO as WSDataFixPortType).add(i, j, k, ss); TntEdit1.Text := ss[0]; edit1.Text := ss[1]; end;