◈PHP Server
<?
include "xmlrpc.inc";
include "xmlrpcs.inc";
// xmlrpc 기능을 사용하기 위한 모듈 import
function sumAndDifference($params)
{
//파라미터 파싱
$oneVal = $params->getParam(0);
$one = $oneVal->scalarval();
$twoVal = $params->getParam(1);
$two = $twoVal->scalarval();
//return 값 만들기
$struct = array('sum' => new xmlrpcval($x + $y, 'int'),
'difference' => new xmlrpcval($x - $y, 'int'));
return new xmlrpcresp(new xmlrpcval($struct, 'struct'));
}
//signature and documentation 작성
$sumAndDifference_sig = array(array('struct', 'int', 'int'));
$sumAndDifference_doc = 'Add and subtract two number';
new xmlrpc_server(array('sample.sumAndDifference' =>
array('function' => 'sumAndDifference',
'signature' => $sumAndDifference_sig,
'docstring' => $sumAndDifference_doc)));
?>
◈PHP Client - 웹페이지에 XML-RPC 호출 루틴을 추가
<html>
<head>
<title>XML-RPC PHP Demo</title>
</head>
<body>
<?
include 'xmlrpc.inc';
//XML-RPC 서버 선언
$server = new xmlrpc_client('PATH/sample.php',
'DOMAIN', '80');
//XML-RPC 서버로 보낼 메시지
$message = new xmlrpcmsg('sample.sumAndDifference',
array(new xmlrpcval(5, 'int'),
array(new xmlrpcval(3, 'int')));
$result => $server->send($message);
//결과
if(!$result)
{
print "<p>Could not connect to HTTP server.</p>";
}
elseif($result->faultString())
{
print "<p>XML-RPC Fault #" . $result->faultCode() . ": " . $result->faultString();
}
else
{
$struct = $result->value();
$sumval = $struct->structmem('sum');
$sum = $sumval->scalarval();
$differenceval = $struct->structmem('difference');
$difference = $differenceval->scalarval();
print "<p>Sum: " . htmlentities($sum) . ", Difference: " . htmlentities($difference) . "</p>" ;
}
?>
</body>
</html>
이 예제는
http://wiki.kldp.org/HOWTO//html/XML-RPC-HOWTO/xmlrpc-howto-php.html
에 있는 예제 이다.
XML RPC Spec (0) | 2011.11.17 |
---|---|
XML RPC 예 (PHP) (0) | 2011.11.17 |
XML RPC 예 (PHP) (0) | 2011.11.17 |
XML RPC 란 ? (0) | 2011.11.17 |
XML RPC 관련 Site (0) | 2011.11.17 |