用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;