[PHP]php发布和调用Webservice接口的案例
分兩步走:1.服務(wù)端發(fā)布接口;2.客戶端調(diào)用方法
1.服務(wù)端發(fā)布接口:
需要nusoap工具,下載地址:http://sourceforge.net/projects/nusoap/
下載完和要發(fā)布接口的php文件放在同一目錄下。
服務(wù)端發(fā)布接口soapserver.php例子:
<?php
require_once('./lib/nusoap.php');
$soap = new soap_server;
$soap->soap_defencoding = 'UTF-8';
$soap->decode_utf8 = false;
$soap->xml_encoding = 'UTF-8';
$soap->configureWSDL('reverse','add2numbers');
//$server->configureWSDL('add2numbers');
$soap->register('reverse',
array('str' => 'xsd:string'),
array('return' => 'xsd:string')
);
$soap->register('add2numbers',
array('num1' => 'xsd:int','num2' => 'xsd:int'),
array('return' => 'xsd:int')
);
//Check variable set?
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)? $HTTP_RAW_POST_DATA:'';
//service handle the client data
$soap->service($HTTP_RAW_POST_DATA);
//echo $server;
/*
* RPC function
* @param $name
*/
function reverse($str){
$retval = "";
if(strlen($str) < 1) {
return new soap_fault('Client','','Invalid string');
}
for ($i = 1; $i <= strlen($str); $i++) {
$retval .= $str[(strlen($str) - $i)];
}
return $retval;
}
function add2numbers($num1, $num2) {
if (trim($num1) != intval($num1)) {
return new soap_fault('Client', '', 'The first number is invalid');
}
if (trim($num2) != intval($num2)) {
return new soap_fault('Client', '', 'The second number is invalid');
}
return ($num1 + $num2);
}
?>
發(fā)布的結(jié)果截圖:
?
?wsdl的說明截圖:
?
2.客戶端調(diào)用接口:
調(diào)用接口soapclient.php例子:
<?php
require_once "./lib/nusoap.php";
$client = new nusoap_client("http://192.168.119.21/soapserver.php");
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
$client->xml_encoding = 'UTF-8';
$str = "This string will be reversed";
$params1 = array('str'=>$str);
$reversed = $client->call('reverse',$params1);
echo "If you reverse '$str', you get '$reversed'<br>\n";
$n1 = 5;
$n2 = 14;
$params2 = array('num1'=>$n1, 'num2'=>$n2);
$added = $client->call('add2numbers', $params2);
echo "If you add $n1 and $n2 you get $added<br>\n";
?>
調(diào)用后結(jié)果:
轉(zhuǎn)載于:https://www.cnblogs.com/liangxuehui/p/4606935.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的[PHP]php发布和调用Webservice接口的案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用MySql保存session
- 下一篇: 动态规划算法php,php算法学习之动态